两台服务器之间的密钥登录
生成密钥
先看 $HOME/.ssh/ 下面有没有已经生成的密钥文件对, 如下: id_dsa id_dsa.pub id_rsa id_rsa.pub 如果已经存在上述任一组, 可以直接使用, 如果都不存在,使用命令创建密钥文件:
[usrname@hostname ~] ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/usrname/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/usrname/.ssh/id_dsa.
Your public key has been saved in /home/usrname/.ssh/id_dsa.pub.
The key fingerprint is:
x6:68:xx:93:98:8x:87:95:7x:2x:4x:x9:81:xx:56:94 usrname@hostname
默认会创建文件 /home/usrname/.ssh/id_dsa 及 /home/usrname/.ssh/id_dsa.pub
拷贝公钥至远程服务器
如果存在命令 ssh-copy-id 可以用命令 ssh-copy-id -i .ssh/id_dsa.pub usrname@hostname 将密钥文件拷贝至远程服务器。
如果不存在该命令, 则需要手动拷贝并设置相应的文件权限。
在 远程服务器 创建 .ssh 目录
如果已存在则跳过, 该目录权限最好设置为 700
mkdir -p ~/.ssh
chmod 700 ~/.ssh
从 本地 拷贝公钥文件到远程服务器。
scp .ssh/id_dsa.pub remote_usrname@remote_host:~/.ssh/
在 远程服务器 将公钥添加到 authorized_keys 文件
cd ~/.ssh/
cat id_dsa.pub >> authorized_keys
chmod 600 authorized_keys
一定要将 authorized_keys 文件权限改为 600 , 否则无法免密码登录
集群内部节点间免密码登录
由于集群计算节点间的HOME是同一个路径, 所以, 配置不同节点间的免密码登录要相对简单一些。
检查是否已经存在 密钥文件, 如上述, 没有则创建
将密钥文件 id_dsa.pub 追加到 authorized_keys 中, 并检查权限。