知识大全 ssh,scp自动登陆的实现方法
Posted 知
篇首语:弓背霞明剑照霜,秋风走马出咸阳。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ssh,scp自动登陆的实现方法相关的知识,希望对你有一定的参考价值。
示例 A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server) 假如ip为 ;A和B的系统都是Linux
在A上运行命令:# ssh keygen t rsa (连续三次回车 即在本地生成了公钥和私钥 不设置密码)# ssh root@ mkdir ssh; chmod ssh (需要输入密码)# scp ~/ ssh/id_rsa pub root@ : ssh/id_rsa pub (需要输入密码)
在B上的命令:# touch /root/ ssh/authorized_keys (如果已经存在这个文件 跳过这条)# cat /root/ ssh/id_rsa pub >> /root/ ssh/authorized_keys (将id_rsa pub的内容追加到 authorized_keys 中)
回到A机器:# ssh root@ (不需要密码 登录成功)
如果能保护好自己的私钥 这种方法相对在shell上输入密码 要安全一些
深入学习
理解登录过程首先 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 rsaGenerating public/private rsa key pair Enter file in which to save the key (/root/ ssh/id_rsa): /root/ ssh/id_rsa_
这样私钥和公钥的名字分别就是:id_rsa_ 和 id_rsa_ pub然后将 id_rsa_ pub 文件的内容 追加到sever的 ~/ ssh/authorized_keys 文件中
最后 在本地用ssh命令的 i 参数指定本地密钥 并登录:# ssh i /root/ ssh/id_rsa_
如果密钥设置了密码 就用密钥的密码登录 没设密码 就直接登录进去了
cha138/Article/program/qrs/201401/30217相关参考