之前遇到的问题,百度上鱼龙混杂,很多解决办法并不明确,所以在简书上记录
场景
A客户端 通过SSH连接上 B服务器
步骤:
1. A客户端生成密匙
ssh-keygen -t rsa
生成密匙对id_rsa(私钥)、id_rsa.pub(公钥),默认存贮在 ~/.ssh目录
2. 将A客户端公钥复制到B服务器
方法一: 将id_ras.pub中的内容直接复制到B服务器(~/.ssh/)中的authorized_keys中,文件不存在则创建,存在则在末尾追加
方法二: ssh-copy-id
命令:ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_ip
方式三:scp
命令:scp -p ~/.ssh/id_rsa.pub root@<remote_ip>:/root/.ssh/authorized_keys
3.B服务器 修改authorized_keys权限
chmod 644 ~/.ssh/authorized_keys
保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限
4.A客户端 编辑config文件(不存在创建)
Host server #别名,域名缩写
HostName sever.com #完整的域名
User username #登录该域名使用的账号名
IdentityFile ~/.ssh/my_rsa #私钥文件的路径
5.A客户端连接
ssh server
常见错误
1.ssh key Key is invalid
密钥错误,或者配置错误
2.配置ssh后仍需要输入密码才能登录
这个问题常见与服务器端,有的系统安装openssh-server后并没有生成.ssh文件,若用户手动生成则需要添加标签,没有添加标签,则需要输入登录密码,手动生成的.ssh目录需要修复标签(selinux保护造成,关闭selinux也可以解决问题,但不推荐关闭)。
restorecon -r -vv /root/.ssh (本人尝试没反应,但国外友人使用能解决)
3.使用ssh-copy-id 提示 Permission denied, please try again.
1.B服务器配置sshd_config(/etc/ssh/sshd_config)
PasswordAuthentication yes
2.重启sshd
service sshd restart
3.ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT
注意: 这里不指定USER则为本机的用户
网友评论