Linux客户机和服务器之间配置免密登录(SSH)

如何配置ssh免密登录?

客户端通过ssh登录服务器的一般方法如下:

1
ssh <username>@<ip address>

其中<username><ip address>分别填入用户名和远程服务器的IP地址。

如果没有配置免密登录,这一步之后一般会提示输入密码。

但是如果经常要登录,每次都输入密码显然很麻烦。于是我们可以配置免密登录,方法如下:

1、在客户端上输入下列指令,生成客户机的公钥和密钥

1
ssh-keygen

这个指令的输出大致如下:

1
2
Generating public/private rsa key pair.
Enter file in which to save the key (/home/<username>/.ssh/id_rsa):

我们直接接受默认设置,连按三次回车键即可。

此时,客户端会生成两个文件,分别是公钥(~/.ssh/id_rsa.pub)和密钥(~/.ssh/id_rsa

2、在客户端上输入下列指令,将公钥上传到远程服务器

1
ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<ip address>

其中<username><ip address>分别填入用户名和远程服务器的IP地址。

在运行上述指令的过程中,可能会提示输入服务器登录密码。照他的提示做就行。

3、成功完成配置。此时再运行下列指令,无需输入密码即可登录的服务器。

1
ssh <username>@<ip address>


旧评论系统备份:

1
2
3
4
5
6
7
8
Hazel(2023-04-12 20:44:14):
所以这样的方法不需要在服务器上做什么更改吗?
还想再学学如何绕过VPN连接,有什么好的软件推荐或者在终端上有什么操作吗?

> WarrenZhang(2023-04-22 01:05:05):
> 需要的呀,正文里面有一小段《在客户端上输入下列指令,将公钥上传到远程服务器》,讲得就是在服务器端的更改。
> ssh登录好像一般不会走VPN,如果需要通过VPN进行ssh登录链接,可以在命令行中加一个 "ProxyCommand" 参数,具体用法可以参考此文:https://blog.csdn.net/qq_34139020/article/details/101039791