Linux SSH远程登录自动验证(不输入用户登录密码)的实现
由于工作关系,经常需要在非常不同的Linux服务器上转上转去,每次登陆,系统都会提示输入密码,是一件很烦的事情。后来,用SSH证书认证来取代普通的密码认证,就不用每次都输入密码了。OpenSSH允许 远程执行命令,如果再加上证书使用,可以运行一些远程控制的脚本去控制许多许多机器,这个对工作非常有用。 下面我们正式来创建证书: 首先,我们要给远程服务器创建一个公钥(public key)。在你的Linux系统上打开一个命令终端Linux 远程登录,运行如下命令: # ssh-keygen -t rsa (这里也可以将RSA改成dsa,) Generating public/private rsa key pair. Enter file in which to save the key (/home/calvin/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/calvin/.ssh/id_rsa. Your public key has been saved in /home/calvin/.ssh/id_rsa.pub. 在这一步里,系统将自动生成一个公钥(public key)并保存在/home/calvin/.ssh/id_rsa/.pub这个文件里面。在上面的命令执行过程中,我们只需要一直敲回车直接使用默认 值就好了(如果你想具体了解,可以去看man page,也可以私下跟我讨论)。 接下来,我们要将这个公钥(public key)复制到远程机器上面去,以前这是一个比较麻烦的事,但是,现在我们只要一个命令就可以搞定: # ssh-copy-id -i /home/calvin/.ssh/id_rsa.pub username@@remoteserver.com 用自己实际的用户名与服务器地址取代username和remoteserver.com(下同),也可以直接填服务器的IP。 在这里,你可以再试下ssh到远程服务器,应该是不会再提示要密码而直接登陆进去了。 当然,如果你的机器没有ssh-copy-id这个命令,我们也可以使用传统的方法: # scp ~/.ssh/id_rsa.pub username@remoteserver.com:/home/username 然后,登陆到远程机器上进行下一步的操作: # ssh username@remoteserver.com # cat ~/id_rsa.pub >> ~/.ssh/authorized_keys2 接下来,我们要给~/.ssh/authorized_keys2 correctly这个文件设置正确的权限(权限不对,证书会被拒绝) # chmod 644 ~/.ssh/authorized_keys2 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |