Ssh

ssh-keygen

配置client无密码登录所有Server

SSH无密码原理   client(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在client上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的server上。当client通过SSH连接Salve时,Salve就会生成一个随机数并用client的公钥对随机数进行加密,并发送给client。client收到加密数之后再用私钥解密,并将解密数回传给server,server确认解密数无误之后就允许client进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端client复制到server上。

client机器上生成密码对

ssh-keygen –t rsa –P ''

接着配置

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

在验证前,需要做两件事儿。第一件事儿是修改文件”authorized_keys”权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置”/etc/ssh/sshd_config”的内容。使其无密码登录有效。

  • 修改文件”authorized_keys”
    chmod 600 ~/.ssh/authorized_keys
    
  • 设置SSH配置

用root用户登录服务器修改SSH配置文件”/etc/ssh/sshd_config”的下列内容。

RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

设置完之后记得重启SSH服务,才能使刚才设置有效。

service sshd restart
ssh localhost
  • 把公钥复制所有的Slave机器上。使用下面的命令格式进行复制公钥:
scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/

server机器配置

mkdir -p ~/.ssh
chmod 700 ~/.ssh
  • 追加到授权文件”authorized_keys”
    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
  • 用root用户修改”/etc/ssh/sshd_config”
  • 用client使用SSH无密码登录Slave
    ssh 14.0.0.13