Linux实现在一台服务器ssh免密登录别的一台服务器

打印 上一主题 下一主题

主题 1767|帖子 1767|积分 5301

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在Linux系统中,实现一台服务器通过SSH免密登录别的一台服务器,通常使用的是SSH密钥认证方式。以下是详细的步骤:

  • 生成SSH密钥对
    在发起SSH登录的服务器上,生成SSH密钥对(假如还没有的话)。通常使用ssh-keygen命令来生成:
bash
Copy Code
ssh-keygen -t rsa -b 2048 -C “your_email@example.com”
-t rsa:指定密钥范例为RSA。
-b 2048:指定密钥长度为2048位。
-C “your_email@example.com”:为新密钥添加注释(可选)。
运行此命令后,系统会提示你输入生存密钥的文件位置和设置密码(可以为空)。通常,密钥会生存在/.ssh/id_rsa(私钥)和/.ssh/id_rsa.pub(公钥)中。

  • 复制公钥到目的服务器
    使用ssh-copy-id命令将公钥复制到目的服务器的~/.ssh/authorized_keys文件中。这个命令会自动处理密钥的复制和权限设置:
bash
Copy Code
ssh-copy-id user@target_server_ip
user:目的服务器上的用户名。
target_server_ip:目的服务器的IP所在或域名。
系统会提示你输入目的服务器的用户密码,以验证身份。验证乐成后,公钥就会被复制到目的服务器的~/.ssh/authorized_keys文件中。

  • 验证免密登录
    现在,你可以尝试从发起SSH登录的服务器连接到目的服务器,而无需输入密码:
bash
Copy Code
ssh user@target_server_ip
假如一切正常,你应该能够直接登录到目的服务器,而无需输入密码。
留意事项
确保/.ssh目次和/.ssh/authorized_keys文件的权限设置正确。通常,/.ssh目次的权限应为700,/.ssh/authorized_keys文件的权限应为600。
假如目的服务器上的SSH设置(/etc/ssh/sshd_config)中禁用了PubkeyAuthentication,则需要启用它并重启SSH服务。
假如在尝试免密登录时遇到问题,可以检查SSH服务的日志(通常位于/var/log/auth.log或/var/log/secure)以获取更多信息。
通过以上步骤,你就可以在Linux系统中实现一台服务器通过SSH免密登录别的一台服务器了。
假如在尝试SSH免密登录时仍然需要输入密码,确实大概是由权限问题、SSH设置文件设置不妥或日志中记载了错误信息等原因导致的。以下是对这些大概问题的详细检查和排查步骤:
权限问题检查
‌检查.ssh目次权限‌:
在长途服务器上,使用ls -ld ~/.ssh命令检查.ssh目次的权限。确保权限设置为700,这表示只有全部者可以读、写和实行该目次。
‌检查authorized_keys文件权限‌:
同样在长途服务器上,使用ls -l ~/.ssh/authorized_keys命令检查authorized_keys文件的权限。确保权限设置为600,这表示只有全部者可以读和写该文件。
SSH设置文件检查
‌打开SSH设置文件‌:
使用文本编辑器(如nano或vim)打开长途服务器上的/etc/ssh/sshd_config文件。
‌检查相干设置项‌:
确保以下设置项已正确设置:
PubkeyAuthentication yes:启用公钥认证。
AuthorizedKeysFile .ssh/authorized_keys:指定公钥文件的路径(通常默认设置即可)。
PasswordAuthentication no(可选):禁用密码认证,以增强安全性。留意,禁用密码认证后,用户将只能通过公钥认证方式登录。
‌生存并重启SSH服务‌:
修改设置文件后,生存更改并重启SSH服务以使更改生效。可以使用sudo systemctl restart sshd命令来重启SSH服务。
日志排查
‌检察SSH日志‌:
使用sudo tail -f /var/log/auth.log命令实时检察长途服务器的SSH日志。尝试再次举行SSH登录,并观察日志中是否有错误信息或拒绝登录的记载。
‌分析日志信息‌:
根据日志中的错误信息,进一步分析问题原因。常见的错误信息大概包罗公钥不匹配、认证失败、权限问题等。
其他留意事项
‌确保公钥正确‌:在发起SSH登录的服务器上,使用cat /.ssh/id_rsa.pub命令检察公钥内容,确保已正确复制到长途服务器的/.ssh/authorized_keys文件中。
‌检查SELinux状态‌:假如长途服务器上启用了SELinux,大概需要检查SELinux的计谋设置是否允许SSH公钥认证。可以使用getenforce命令检察SELinux的状态,并使用sestatus命令检察详细的SELinux计谋信息。
‌防火墙设置‌:确保长途服务器的防火墙设置允许SSH连接。可以使用sudo iptables -L -n或sudo firewall-cmd --list-all命令检察防火墙规则。
通过以上步骤,你应该能够检查和排查SSH免密登录时仍然需要输入密码的问题,并找到相应的解决方案。假如问题仍然存在,大概需要进一步检查网络设置、SSH客户端和服务器的版本兼容性等其他因素。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表