用ssh连接远程服务器
通过SSH协议(Secure Shell),在本地计算机和远程服务器之间建立一个安全加密的通信通道,从而允许用户远程访问、管理和操作服务器。SSH协议用于保障数据传输的安全性和隐私性。
具体操作解释
目的
远程执行命令
上传、下载文件
进行服务器管理和维护
工作原理
SSH使用加密技术保护通信内容(用户名、密码、传输的数据)
默认情况下,SSH服务监听端口是22
通信需要通过用户身份认证(密码认证或密钥认证)
连接流程
本地计算机作为SSH客户端,运行SSH客户端工具(如ssh命令、XShell、PuTTY、MobaXterm)
输入远程服务器的IP地址或域名、登录的用户名和密码(或密钥)
通过加密通道与远程服务器通信
简单的SSH命令
连接远程服务器
bash
ssh 用户名@服务器地址
如果服务器的SSH服务运行在非默认端口,则指定端口号:
bash
ssh -p 端口号 用户名@服务器地址
通过密钥认证连接:如果配置了SSH公钥和私钥,使用密钥认证,无需密码:
bash
ssh -i /路径/到/私钥 用户名@服务器地址
这里也许-i /路径/到/私钥可以去掉
3. 文件上传或下载:使用scp(安全复制)命令
上传文件:
bash
scp 文件名 用户名@服务器地址:/远程路径/
下载文件:
bash
scp 用户名@服务器地址:/远程路径/ 文件名
(上传、下载,文件名的位置正好相反)
以上操作可以用Xftp代替
4. 保持连接的会话:使用tmux或screen工具,避免断开后任务中断
应用场景
服务器管理与运维,部署网站与应用,远程开发调试
通过SSH连接到Linux服务器(貌似没法连接本地Ubuntu虚拟机)
传统的网络服务程序,如ftp,pop,telnet在本质上是不安全的,因为它们使用明文传送口令和数据,很容易被冒充真正服务器的中间人修改数据(“中间人”攻击)。
SSH可以对你的传输数据进行加密,进而防止“中间人”攻击,DNS和IP欺骗,另外,它对传输数据进行了压缩,可以加快传输速度。
通过账号密码方式进行ssh连接
(以Windows连接,需要cmd控制台为例)
在Linux服务器输入whoami查看Linux服务器用户名,ip addr查看服务器ip地址
5: docker0:
link/ether 02:42:01:e0:36:00 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet 172.17.0.1中172.17.0.1是ip地址
2.在windows的cmd控制台生成公私钥文件
ssh-keygen -t rsa
3.打开公私钥存放路径找到公钥文件file_name.pub,并复制到liunx操作系统中
C:\Users\zhuangziting>ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\zhuangziting/.ssh/id_rsa): local_Ubuntu #公钥存放路径
Enter passphrase (empty for no passphrase):#设置ssh公私钥连接密码
Enter same passphrase again:
Your identification has been saved in local_Ubuntu
Your public key has been saved in local_Ubuntu.pub
The key fingerprint is:
SHA256:wp94PJbwV/ggNibUbrLeq2nVOmcf0uOsCj1y9XuVHAA zhuangziting@DESKTOP-8S2TS0S
The key's randomart image is:
+---[RSA 3072]----+
| E. |
| . . |
| . . . |
| o . . . |
| * S.+ . . o|
| /.*.* o.|
| =.&.o * . |
| ..Oo+o+ +. |
| .+.+*.o=. |
+----[SHA256]-----+
如果第一步直接回车确认公私钥存放路径,那么公钥默认文件是id_rsa.pub,在.ssh目录下
用dir file_name /s找到公钥文件
在linux操作系统中将复制进来的公钥文件内容追加到 authorized_keys 文件中。
/root/.ssh/authorized_keys
4.ssh连接
ssh -p 端口号 Linux_username@linux_ip