使用SSH证书(不要密码)登陆远程服务器
2011-08-06 11:30
330 查看
由于工作关系,我经常需要在非常不同的Linux服务器上转上转去,原来每次登陆,系统都会提示你输入密码,这的确是一件很烦的事 情,特别是你在需要对好几台机器工作的时候。后来,我学会了用SSH证书认证来取代普通的密码认证,这样子我就不用每次都输入密码了。OpenSSH允许 远程执行命令,如果再加上证书使用,那就我就可以运行一些远程控制的脚本去控制许多许多机器,这个对我的工作非常有用。比如说,在需要在100台机器上添
加许多相同的用户。。。
闲话少说,下面我们正式来创建证书:
首先,我们要给远程服务器创建一个公钥(public key)。在你的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_keys
接下来,我们要给~/.ssh/authorized_keys correctly这个文件设置正确的权限(权限不对,证书会被拒绝)
# chmod 644 ~/.ssh/authorized_keys
或者设置成只读
# chmod 400 ~/.ssh/authorized_keys
加许多相同的用户。。。
闲话少说,下面我们正式来创建证书:
首先,我们要给远程服务器创建一个公钥(public key)。在你的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_keys
接下来,我们要给~/.ssh/authorized_keys correctly这个文件设置正确的权限(权限不对,证书会被拒绝)
# chmod 644 ~/.ssh/authorized_keys
或者设置成只读
# chmod 400 ~/.ssh/authorized_keys
相关文章推荐
- 使用SSH证书(不要密码)登陆远程服务器
- 使用SSH证书登陆远程服务器
- 在Mac OSX下使用ssh登陆到远程服务器
- 使用ssh private key 免密码登陆服务器的流程(Amazon 的EMR 采用了此方式登陆服务器)
- linux远程登陆不要密码,使用authorized_keys不生效的解决方法
- Hadoop ssh实现远程服务器免密码登陆
- SSH免密码登陆远程服务器
- Mac无密码SSH登陆远程服务器
- SSH免密码登陆远程服务器
- Linux上实现ssh免密码登陆远程服务器 推荐
- 远程登陆不要密码,使用authorized_keys不生效的解决方法
- 通过PuTTY使用SSH免密码登录Ubuntu Server14.04远程服务器
- ssh免密码登陆远程服务器
- Mac下使用iTerm2让SSH免密码登录远程服务器
- 【Linux】SSH证书免密码远程登陆Linux(Putty)
- 使用expect实现ssh不输入密码登录远程服务器
- linux使用ssh免密码远程登陆到别的机子
- 使用ssh-keygen命令生成密钥对无密码远程登陆linux主机
- Linux下使用SSH非交互式远程执行命令脚本---ssh无密码登陆
- SSH远程登陆服务器要很久才出现输入密码界面怎么办