一、SSH是什么
简单的说,SSH是一种网络协议,主要用于客户端与远程主机的安全链接和交互。
二、常见用法
1.客户端与远程主机的安全链接
命令如下:
$ ssh -p 2222 user@host
解释如下:
-p 2222 :指定端口号2222
user :登陆用户名
host ;远程主机地址
安全链接的过程是:
1.远程主机端收到客户端的登陆请求时先发送自己的公钥给客户端
2.客户端用拿到的公钥加密用户名和密码,然后发送给远程主机
3.远程主机用自己的密钥解密收到的用户名和密码,然后校验用户名和密码是否正确,如果正确则登陆成功。
另外:
在链接的过程中会有如下信息
$ ssh user@host The authenticity of host 'host (12.18.429.21)' can't be established. RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d. Are you sure you want to continue connecting (yes/no)?
会用一个确认,提醒客户端是否确定链接此远程主机,并打印出了主机的公钥指纹:98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
远程主机的公钥指纹可以到远程主机的WEB页面进行人工确认。
2.客户端免密登陆远程主机
如果只是通过第一步,以后的每次登陆都需要输入登陆密码,非常麻烦。幸运的是SSH提供了公钥登陆(免密登陆)
公钥登录的流程如下:
1.客户端在自己本地生成一对公钥密钥文件,然后将公钥存储在远程主机上
2.客户端登陆时,远程主机会随机生成一串字符串发送给客户端
3.客户端用自己的密钥将收到的字符串加密,并返回给远程主机
4.远程主机利用公钥解密收到的加密字符串,如果解密成功并且与发送的一致则直接免密登陆。