这个页面是百度知道的意见反馈和投诉举报页面。

LINUX如何使用SSH免密登录_LINUX配置SSH免密登录教程

哎哟,这事儿吧,我当年捣鼓Linux那会儿经常搞。
你照着这步骤来,一般没啥问题。

说起来,前年我在杭州给一个客户远程管理服务器,那家伙,密码输来输去老忘,每次都得打电话过去让他帮忙开个sudo。
后来我给他整了这套免密登录,嘿,从此省事多了。

一、生成本地SSH密钥对
你这得在电脑上开个终端,我这用的是Mac,你用Windows那就是PowerShell或者Git Bash。

敲命令:ssh-keygen -t rsa -b 2 04 8
它就问你保存路径,你就按回车,默认的是 ~/.ssh/id_rsa。
这个路径啊,千万别动,后面麻烦。

问你设置密码不,你要是想完全免密,那就一路回车,留空。
你要是想加个密码,那你就输个密码,然后按回车确认。
加密码吧,有时候忘了密码也挺烦的,看你自己。

搞完这步,你看看 ~/.ssh/ 目录下,是不是多了两个文件,一个叫 id_rsa,一个叫 id_rsa.pub?那个 id_rsa 是私钥,千万别给丢了,也别乱发给别人。
那个 id_rsa.pub 是公钥,这个相对安全点。

二、把公钥弄到服务器上
这一步最简单,用个命令就能搞定。

敲命令:ssh-copy-id username@server_ip
这里的 username 就是你服务器上的用户名,server_ip 就是服务器的地址。

第一次连的时候,它会问你服务器的指纹对不对,你就输入 yes,然后回车。

然后它会让你输入服务器的密码,你输密码。
输完密码,它就把你的公钥内容给弄到服务器的 ~/.ssh/authorized_keys 文件里去了。

要是 ssh-copy-id 这个命令找不到,那你手动弄也行。

先用 cat ~/.ssh/id_rsa.pub 把你的公钥内容复制下来。

然后你用SSH登录到服务器上,也就是 ssh username@server_ip。

登录上去之后,打开一个编辑器,比如 nano,命令是 nano ~/.ssh/authorized_keys。

把刚才复制的公钥内容,粘贴进去,然后保存,退出编辑器。

三、改改服务器上的SSH设置
这一步得用 root 用户登录服务器,或者你有足够的权限。

用 sudo 命令,比如 sudo nano /etc/ssh/sshd_config,打开SSH的配置文件。

这里面有几行你要看看:
PubkeyAuthentication yes 这行,前面不能带 ,得是 yes。
AuthorizedKeysFile .ssh/authorized_keys 这行,看看对不对。
PasswordAuthentication 这行,你可以改成 no,意思就是不用密码登录了。
不过呢,你得确保你的密钥登录成功之后,再把它改成 no,免得搞忘了密码进不去。

改完这些,保存文件,退出编辑器。

然后重启一下SSH服务,命令是 sudo systemctl restart sshd。
或者有的系统是 sudo service ssh restart。

四、试试能不能免密登录
这步最关键,看效果。

在本地终端,敲命令:ssh username@server_ip
如果它直接就让你进去了,不用让你输密码,那说明成功了。

要是还让你输密码,那你就得检查几件事:
1 . 服务器上 ~/.ssh/authorized_keys 文件的权限是不是 6 00?你可以用 ls -l ~/.ssh/authorized_keys 看看。
2 . 服务器上 ~/.ssh 这个目录的权限是不是 7 00?你用 ls -l ~/.ssh 看看。
3 . 你那公钥是不是真的加进去了?你用 cat ~/.ssh/authorized_keys 看看里面有没有你的公钥内容。

五、把权限给整对
为了安全,这几步权限得改改。

在服务器上,用 root 或者有权限的用户,敲命令:
bash chmod 7 00 ~/.ssh chmod 6 00 ~/.ssh/authorized_keys
在本地,你那 ~/.ssh/id_rsa 私钥文件,也得改权限,命令是:
bash chmod 6 00 ~/.ssh/id_rsa
而且啊,这几个文件和目录的所有者,都得是你自己,不是 root,也不是别的什么用户。
你可以用 chown your_username:your_username ~/.ssh 和 chown your_username:your_username ~/.ssh/id_rsa 来改。

搞完这些,基本上就差不多了。
你试试看,有问题我再跟你说。

如何在 Linux 中设置 SSH 无密码登录?

哎哟,兄弟,我之前搞SSH无密码登录的时候可真是踩了不少坑。
记得那会儿,我在2 01 9 年,在公司的服务器上搞这个,差点没把我整崩溃了。

首先,生成密钥对那块儿,我一开始用的是默认路径,结果发现私钥文件权限没设置好,导致远程主机不认。
当时真是急得团团转,最后查了半天资料,才发现得手动设置权限,就是那个chmod 6 00 ~/.ssh/id_rsa。

然后,把公钥复制到远程主机那块儿,我一开始用的是ssh-copy-id命令,结果远程主机上那个~/.ssh目录权限不对,命令执行失败。
那时候我真是郁闷啊,后来才知道远程主机上的~/.ssh目录权限要设置成7 00,authorized_keys文件权限要6 00。

最头疼的是配置SSH服务,我那时候搞了好几次,每次都忘记重启SSH服务。
最后我直接在sshd_config文件里把PasswordAuthentication那一行注释掉了,然后重启服务,这才搞定了。

最后测试无密码登录的时候,我还以为成功了,结果发现远程主机上没有权限。
后来一看日志,原来是本地私钥权限没设置好。
那时候我真是哭笑不得,还好最后解决了。

兄弟,你要是搞这个,记得以下几点: 1 . 生成密钥对的时候,权限要设置好。
2 . 复制公钥的时候,远程主机上的~/.ssh目录权限要7 00,authorized_keys文件权限要6 00。
3 . 配置SSH服务后,一定要重启服务。
4 . 测试无密码登录时,权限问题要特别注意。

这事儿吧,虽然有点麻烦,但搞定了之后,操作起来确实方便多了。
别看我现在说得这么轻松,当时可真是把我折磨惨了。
哈哈,希望我的经验能帮到你!