SSH免密码登录及常见错误

之前遇到的问题,百度上鱼龙混杂,很多解决办法并不明确,所以在简书上记录

场景

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则为本机的用户

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group...
    shuff1e阅读 5,733评论 1 11
  • SSH(Secure Shell)协议为远程登录或其它网络服务(如:sftp、scp)提供安全保障的一种协议。它设...
    CHUANHAI阅读 10,923评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,388评论 19 139
  • 1、远程连接服务器 远程连接服务器对于管理员来说,是一个很有用的操作。它使得对服务器的管理更为方便。不过方便归方便...
    Zhang21阅读 39,676评论 0 20
  • SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Internet...
    StarShift阅读 7,342评论 0 7