作者 青鸟

ssh连接的原理

SSH连接指的是通过SSH(Secure Shell)协议建立的安全远程连接。SSH是一种加密的网络协议,用于在不安全的网络上安全地进行远程登录和执行命令。

通过SSH连接,你可以远程登录到远程计算机或服务器,并执行命令、传输文件等操作,而这些操作都会在加密通道中进行,确保数据传输的安全性。

SSH连接使用了非对称加密和对称加密两种加密方式。在建立连接时,客户端和服务器会协商加密算法,生成公钥和私钥,用于加密通信和身份验证。客户端使用服务器的公钥对通信数据进行加密,而服务器使用自己的私钥解密。

SSH连接的一个常见用途是远程管理服务器。管理员可以通过SSH连接到服务器,执行系统管理任务、安装软件、查看日志等操作,而不需要直接物理接触服务器。此外,SSH连接也常用于安全地传输文件,可以通过SCP(Secure Copy)或SFTP(SSH File Transfer Protocol)在本地计算机和远程服务器之间传输文件。

总结来说,SSH连接是一种安全的远程连接方式,通过加密和身份验证确保数据的安全传输,使得用户可以远程管理计算机或服务器。

ssh的配置

使用SSH连接有两种方式,一种是账号和密码登陆,一种是使用密钥登陆

账号和密码登陆

1
2
3
#远程连接命令,-p端口号 账号@服务器公网IP
ssh -p22 root@127.0.0.1
#按提示输入密码,然后回车

上面这种方式临时用比较简单,但还是很繁琐,每次都要输入密码,安全性也不够。

因此这里推荐使用密钥登陆

密钥登陆

我们现在本地生成SSH密钥对

1
2
3
#生成密钥,-t指定加密方式 -C 注释
ssh-keygen -t rsa -C "xxx@mail.com"
#根据提示一步步往下,密码可以直接回车不用输入,最后将得到两个文件id_rsa是私钥,id_rsa.pub是公钥

然后我们将公钥上传到服务器,-i 本地公钥文件路径 账号@服务器公网ip

1
ssh-copy-id -i /Users/.ssh/id_rsa.pub root@127.0.0.1

这样子就上传成功了,可以试试免密登录,顺便看看公钥是被添加到服务器的哪个位置了(如果失败,可以检查这里是不是被正确添加,直接将公钥复制过来也是可以的)

1
2
ssh -p22 root@127.0.0.1
cat ~/.ssh/authorized_keys

同时我们可以给在密钥登陆的基础上使用别名登陆,这样子便于记忆,还方便使用

首先在刚刚密钥生成的目录下创建一个config文件

1
2
cd /Users/.ssh
touch config

然后配置这个文件

在里面写入

1
2
3
4
Host example
HostName 192.168.xxx.xxx
User root
IdentitiesOnly yes

之后就可以使用

1
ssh example

来登陆了

参考文献: 使用ssh远程连接云服务器