Linux远程链接(SSH)
SSH简介
ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。
- ssh-******
-
简介
ssh-****** 可用来生成ssh公钥认证所需的公钥和私钥文件。一般是在~/.ssh 目录下执行该命令,如果是想把**统一管理则可以自定义目录,之所以放在目录 ~/.ssh下是因为该目录为用户私有目录,root用户以外的人是看不到的。默认生成私钥文件名id_rsa,公钥文件id_rsa.pub。
备注:rsa是一种非对称加密算法,aes是一种对称加密算法 -
ssh-******实例
(1):不带任何参数
解释:
A: 直接输入ssh-******命令,不带任何参数,默认使用rsa非对称加密
B:输入自定义文件名,如果直接回车则生成默认文件名rsa rsa.pub
C:対生成的私钥文件加密,最少五位,直接回车则默认不加密
D:确认C处输入的密码
E:图中输入了自定义文件名test,所以这里生成了连个文件test私钥,test.pub公钥
备注:ssh-******有很多带参数的生成方式,具体可以查看其它资料了解。
- ssh-copy-id
-
简介
ssh-copy-id - 将你的公共**填充到一个远程机器上的authorized_keys文件中(即:本地执行该命令,可以把刚大生成的公钥文件内容提取出来,发送到远程主机的authorized_keys文件中,然后本地连接工具就可以用自己的私钥关联去免密登陆远程主机)。 -
实例
1:指定公钥文件发送到远程主机
解释:
A: 将本地公钥发送至远程主机。格式: ssh-copy-id -i 公钥文件名 远程主机用户名@远程主机地址
B:直接yes即可
C:输入远程主机用户名所对应的密码
D:大功告成
- 非免密登陆原理简介
1.远程Server收到Client端用户TopGun的登录请求,Server把自己的公钥发给用户。
2.Client使用这个公钥,将密码进行加密。
3.Client将加密的密码发送给Server端。
4.远程Server用自己的私钥,解密登录密码,然后验证其合法性。
5.若验证结果,给Client相应的响应。
-
免密登陆原理简介
1.Client将自己的公钥存放在Server上,追加在文件authorized_keys中。
2.Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey®,然后将加密后信息发送给Client。
3.Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。
4.Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。
5.Server端会最后比较Digest1和Digest2是否相同,完成认证过程。