前言

密码每次都要记那么长一串,好累的啊,我一直在想,有没有什么办法可以不用输入密码就能进去?

最好就是一回车,或者双击打开浏览器那样简单就能登录进去就舒服了!

设置秘钥登录

首先,先用常规的密码登录进入服务器

连接到Linux服务器

进去之后,找到你的.ssh文件夹,就在你的家目录下面

注意!一定要确定你想登录的账号和这个目录要一致

拿着张三家的钥匙可进不了李四家,李四的老婆可会拿扫把把你赶出来。

# 进入当前登录账号的家目录下的.ssh目录
cd ~/.ssh/

# 查看当前路径(不用敲,我只是演示)
pwd

# 查看当前路径下所有文件详细信息(不用敲,我只是演示)
ll

设置authorized_keys文件

找到账号的SSH存放目录

然后你能看到你这个目录下,有个authorized_keys文件,没有后缀

如果没有这个目录或者没有这个文件,就自己新建,注意路径别弄错

vim命令打开它(没有文件的话,直接vim最后保存也可)

编辑公钥文件

然后你可以看到这个文件里啥都没有(如果有,那就得问问服务器的主人放行了哪些奇怪的人进来了)

左下角的样子,代表是刚进来,没有进入乱七八糟的模式

空白的公钥文件

然后点击你的键盘上的i键,进入编辑模式,如果按错了,可以点Esc退出其他模式(就是你键盘左上角的那个)

看到变成了INSERT,就代表进入了编辑模式了

vim进入编辑模式

拿到成员公钥内容

这个时候,把你的公钥粘贴进去(什么?哪有公钥?自己去……)

你如果从来没有生成过,可以用命令ssh-keygen -t rsa -C "你的邮箱地址"生成(一路回车),具体细节,我比较推荐廖雪峰老师的教程,传送门:

廖雪峰教程-关于生成key的

当然,也可以看我另一篇博客里的内容:

windows电脑的ssh秘钥和公钥生成)

然后在你本地的~/.ssh/id_rsa就是私钥了

另一个~/.ssh/id_rsa.pub就是公钥了

如果你看不懂什么是~/,这个代表家目录,在windows系统下一般路径是这样的C:\Users\Administrator\.ssh

什么?没有 Administrator用户?毁灭吧!

把这个单词替换成你的登录账号名就行。

粘贴你的公钥文件

粘贴进去之后,点击Esc退出编辑模式,之后输入:wq别漏了冒号

然后回车就行(代表保存并退出)

保存并退出

然后你就会看到你出来了,并不在文件里了

直接右上角叉掉就行(我比较推荐打两次exit命令退出,比较炫酷)

设置目录权限

注意,需要把这个~/.ssh/目录的权限设置为所属用户专有

比如,你要登录的用户是test,就最好把/home/test/.ssh目录的所属者设置为test用户自己,所属权限设置为700

命令如下:

# 设置用户所属者
sudo chown -R 用户名.用户组 /home/用户名/.ssh

# 设置用户权限
sudo chmod -R 700 /home/用户名/.ssh

使用秘钥登录

然后新开个窗口试下用秘钥进行登录,输入命令:(如果你只有一个秘钥,且存放位置属于默认位置,那可以不用这么复杂,直接输入ssh 账号名@服务器地址也可以)

ssh -i 秘钥文件 账号名@服务器地址

我这里输入的就是

ssh -i ~/.ssh/id_rsa ecs-user@47.107.105.110

然后回车

指定秘钥登录

哈哈哈,很棒,不用输入密码了

成功使用秘钥登录

把这行命令放到个.bat文件里,就会发现,双击登录服务器,一样爽!

瑞思拜~

下班!


欢迎关注拓行公众号,分享各种技术博客文章

拓行——奋勇进取,开拓未来,砥砺前行

最后修改:2024 年 04 月 09 日
如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~