一.简述ssh

ssh是加密的远程登录和远程执行命令的工具,它不仅在密码进行加密,对登录后执行的命令也进行了加密,所以比较安全,在这之前使用的是telent和R系列的命令,这些是明文传输,很不安全.
一般的linux发行版本都带了ssh,不要手动安装.

二.密码登录

1.工作原理

python 用公钥进行ssh 连接 ssh公钥登录_服务器


1.客户端向服务端发起登录请求,服务端返回公钥

2.客户端用公钥加密自己的认证信息,发送到服务端

3.服务端用私钥解密客户端发来的认证信息,匹配则登录成功,否则失败 

2.登录命令

ssh 用户名@主机ip或者hostname

注意:如果要使用hostname进行登录,那么就得在配置文件/etc/hosts加入映射
如下:
192.168.1.66 cluster01
如果登录的用户名和本地的用户名一样可以直接 ssh ip或者hostname

3.存在的安全隐患

使用密码登录会存在中间人拦截的安全隐患,也就是在客户端发起请求后,可能发送到一个中间人手中(使用一些拦截手段),然后中间人冒充服务端,返回公钥,客户端利用伪造的公钥加密了账号和密码发送给了中间人,中间人在利用自己的私钥进行解密就得到了用户名和密码.

三.公钥登录

1.工作原理
1.客户端将自己的公钥通过安全的手段传输到服务端
2.客户端发起连接请求,服务端利用客户端的公钥加密一段随机文本发送给客户端
3.客户端利用私钥解密,将解密内容发送到服务端,服务端对比解密的内容是否正确,正确建立连接,否则拒绝连接

2.配置过程

python 用公钥进行ssh 连接 ssh公钥登录_客户端_02

# 客户端生成公钥和私钥 
ssh-keygen -t rsa
# 将生成的公钥以安全的方式传输到要登录的服务器
scp ~/.ssh/id_rsa.pub root@172.17.0.4:~/
# 服务端将客户端的公钥加入到授权列表
cat id_rsa.pub >> ~/.ssh/authorized_keys

配置完成上述内容就可以使用公钥登录了