ssh免密连接

1.本地生成密钥对

在本地计算机上打开终端并输入

ssh-keygen

2.将公钥复制到要访问的远程服务器

  • 方法1:ssh-copy-id
ssh-copy-id username@remote_host
  • 方法2:如果没有ssh-copy-id命令,就使用以下命令
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

登录服务器将authorized_keys的权限改成600

chmod 600 /home/user_name/.ssh/authorized_keys

将“username”替换为您要登录的用户名,“remote_host”替换为服务器的IP地址或域名。

3.修改sshd配置文件

sudo vim /etc/ssh/sshd_config
  • PasswordAuthentication 是否启用密码验证,看个人情况
  • PubkeyAuthentication 是否启用公钥身份验证,设置为true
  • PermitRootLogin 如果允许root用户通过SSH登录,设置为true
    修改完配置文件,重启sshd服务
service sshd restart

或者

systemctl restart sshd

4.连接服务器

ssh username@remote_host

不出意外的话,就可以不用输密码了

5.意外情况

  1. SSH服务未启动或未正确配置

    确认SSH服务已经启动,并且已经正确地配置了sshd_config文件。还要确保防火墙允许SSH连接。

  2. 证书错误

    重新生成新的证书

  3. 证书文件指定的路径错误

    确认证书路径是否正确, 看配置文件中的/etc/ssh/sshd_config的AuthorizedKeysFile和authorized_keys文件的路径是否一致

  4. 文件和目录权限设置错误(重点)

    确认所涉及文件和目录的权限设置是否正确,authorized_keys文件应该只能由所有者读写,通常是600权限,否则无法免密登录

    chmod 700 /home/user_name chmod 700 /home/user_name/.ssh chmod 600 /home/user_name/.ssh/authorized_keys

    user_name替换成用户名


__EOF__

本文作者杨是杨柳的柳
本文链接https://www.cnblogs.com/willow-yang/p/17218036.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   杨是杨柳的柳  阅读(91)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示