SSH免密登录配置指南
每次 SSH 登录都要输入密码确实很影响效率。解决这个问题的核心方法就是配置SSH密钥认证。简单来说就是让你的电脑客户端和远程服务器服务端通过一对“钥匙”来互相确认身份从而省去手动输入密码的步骤。针对你提到的“Mac远程登录Linux”和“Linux远程登录Mac”这两种情况配置方法基本相同但有几个关键点需要留意。下面是具体的操作步骤 快速配置指南整个配置过程可以概括为“本地生成钥匙把锁交给远程”两步。情况一从Mac登录到Linux (最常见)这是最顺畅的场景操作起来一气呵成。在Mac上生成密钥对打开Mac的终端运行以下命令然后一直按回车键接受默认设置即可。ssh-keygen-trsa-b4096这会在你Mac的~/.ssh/目录下生成一对文件私钥 (id_rsa) 和公钥 (id_rsa.pub)。将公钥复制到Linux服务器使用ssh-copy-id命令这是最方便的方法。它会自动把公钥添加到远程服务器的正确位置。ssh-copy-id 你的用户名Linux服务器的IP地址根据提示输入一次远程Linux服务器的登录密码。完成后公钥就被妥当地存放在服务器上了。测试登录之后你再从Mac通过ssh登录这台Linux服务器就不需要输入密码了。情况二从Linux登录到Mac从Linux登录Mac基本原理相同但需要在Mac上进行一些设置因为它默认不开启远程登录。在Linux上生成密钥对在Linux客户端执行和上面一样的命令。ssh-keygen-trsa-b4096在Mac上开启远程登录这是关键一步。点击Mac左上角的苹果图标 →系统设置→通用→共享打开“远程登录”的开关。这确保了Mac可以接受SSH连接。将公钥复制到Mac由于Mac默认没有ssh-copy-id命令需要手动操作。首先在Linux上查看并复制公钥内容cat~/.ssh/id_rsa.pub然后手动登录到Macssh你的Mac用户名Mac的IP地址登录后在Mac上执行以下命令将公钥内容粘贴进去并设置好权限mkdir-p~/.sshecho这里粘贴你刚才复制的公钥内容~/.ssh/authorized_keyschmod700~/.sshchmod600~/.ssh/authorized_keys最后退出Mac登录。测试登录现在从Linux服务器尝试登录Mac应该已经免密了。 Mac用户特别注意解决重启后仍需密码的问题如果你在Mac上配置完所有步骤后发现一切正常但每次重启Mac后第一次SSH登录远程服务器又需要输入密码了这很可能是Mac特有的“小脾气”。这是因为macOS的ssh-agent负责管理密钥的程序默认不会将密钥永久保存在内存中。解决办法是在将密钥添加到ssh-agent时使用一个特殊的Mac专用参数# 将私钥添加到ssh-agent并让其永久保存在Mac的钥匙串中ssh-add --apple-use-keychain ~/.ssh/id_rsa执行这个命令后即使Mac重启密钥信息也会被安全地保存在你的钥匙串里ssh-agent可以随时读取无需你再手动添加。 检查与故障排除如果设置后仍然提示输入密码可以按照以下几点快速排查检查权限这是最常见的原因。在远程服务器上确保~/.ssh目录权限是700~/.ssh/authorized_keys文件权限是600。检查服务器配置登录到远程服务器检查SSH配置文件/etc/ssh/sshd_config确保以下两行是启用的没有#注释PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys修改配置后需要重启SSH服务才能生效。为了方便你日后查阅这里有一个快速参考表场景核心命令关键步骤Mac → Linuxssh-keygenssh-copy-id userlinux-server在Mac上生成密钥使用ssh-copy-id上传公钥。Linux → Macssh-keygen手动复制粘贴公钥1.在Mac上开启“远程登录”共享。2.手动将Linux的公钥添加到Mac的~/.ssh/authorized_keys。解决Mac重启失效ssh-add --apple-use-keychain ~/.ssh/id_rsa将私钥添加到Mac的钥匙串中实现永久保存。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2411652.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!