【转载】SSH免密码登录

A为本地主机(即用于控制其他主机的机器)
B为远程主机(即被控制的机器Server)
A和B的系统都是Linux

在A上的命令:

ssh-keygen -t rsa  # (连续三次回车,即在本地生成了公钥和私钥,不设置密码)

#ll -a ~/.ssh 查看目录
~/.ssh/id_rsa.pub  # 公钥(传送到其他服务器的公钥)
~/.ssh/id_rsa  # 私钥
~/.ssh/known_hosts  # ssh会把你每个你访问过计算机的公钥(public key)都记录

在A本地主机的公钥复制到远程主机的authorized_keys文件上

ssh-copy-id user@server  # 需要输入 user 密码
# 或者 -i:指定公钥文件
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server  # 需要输入 user 密码

# 成功后会在 B 上查看 authorized_keys  文件
cat /home/user/.ssh/authorized_keys 

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAnv1/iydQBCU68x0bGqwqPcQWCJrkpdi5i0cjgCXM0DCi8kubP
neerB6+wTBsG6O6XcCL6Ss3KYt68b+2bsKw1BGq5JPc3NIsV/h3cTBI2KRqYj4de6K5V7VpBLdgJ8L
WbptWZaZecGplwtCp9l1C7fj/m2fHw69/RtD1idyhu/6a7hXz5AhX61QOyLawxgHULI4J3aUIO/nHapKHr6p
2/CI5mzXIxn7wp2sbtXXMQIi2JZWJeG9UcbeQJFYVlJ8iiD7mjDDw1ZrmJ0fB6jCxd7pLgAf354GWqUK
lZUYgowDpEpDZBhiOqqIGs78WZyXmd5KJh+9T9n2PwpvjmXgACw== root@server

如果错误提示:

bash: /home/user/.ssh/authorized_keys: Permission denied

说明 user 对.ssh目录或者authorized_keys文件没有权限

在B上使用命令

chown -R user:user /home/user/.ssh/

-bash: ssh-copy-id: command not found

yum -y install openssh-clients