Linux ssh免密码登录

本机:192.168.1.228

要免密码登陆的远程主机:192.168.1.229

 

本机和远程用户目录下创建目录

mkdir .ssh

chmod 700 .ssh

本机创建密钥

ssh-keygen -t rsa 

在远程主机的可信任列表(~/.ssh/authorized_keys)中将本机公钥(~/.ssh/id_rsa.pub )内容填进去即可:

 

本机测试是否可以免密码执行:

ssh 192.168.1.229 date

######################################################################### 

 

深入一点点: 

 

从表面上简单的理解一下登录的过程, 

首先 ssh-keygen -t rsa 命令生成了一个密钥和一个公钥, 而且密钥可以设置自己的密码 

可以把密钥理解成一把钥匙, 公钥理解成这把钥匙对应的锁头, 

把锁头(公钥)放到想要控制的server上, 锁住server, 只有拥有钥匙(密钥)的人, 才能打开锁头, 进入server并控制 

而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被了配了(私钥被人复制) 

 

当然, 这种例子只是方便理解罢了, 

拥有root密码的人当然是不会被锁住的, 而且不一定只有一把锁(公钥), 但如果任何一把锁, 被人用其对应的钥匙(私钥)打开了, server就可以被那个人控制了 

所以说, 只要你曾经知道server的root密码, 并将有root身份的公钥放到上面, 就可以用这个公钥对应的私钥"打开" server, 再以root的身分登录, 即使现在root密码已经更改! 

 

如果想控制n个机器, 那就需要n对钥匙(密钥和公钥), ssh-keygen 命令可以随意更改钥匙对的名字, 比如: 

[root@wwy .ssh]# ssh-keygen -t rsa 

Generating public/private rsa key pair. 

Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_192.168.102.12 

...... 

 

这样私钥和公钥的名字分别就是: 

id_rsa_192.168.102.12 和 id_rsa_192.168.102.12.pub 

然后将 id_rsa_192.168.102.12.pub 文件的内容, 追加到sever的 ~/.ssh/authorized_keys2 文件中, 

 

最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录: 

# ssh -i /root/.ssh/id_rsa_192.168.102.12 192.168.102.12 

 

如果密钥设置了密码, 就用密钥的密码登录, 没设密码, 就直接登录进去了 

 

scp也是一样的 

如: 

scp -i /root/.ssh/id_rsa  ./xxx 192.168.102.158:/home/wwy/bak

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值