[搬]Ubuntu远程服务器添加SSH密钥登录

来自Bistu刘照阁
SSH密钥登录原理:

密匙认证需要依靠密匙,首先创建一对密匙(包括公匙和密匙,并且用公匙加密的数据只能用密匙解密),并把公匙放到需要远程服务器上。这样当登录远程 服务器时,客户端软件就会向服务器发出请求,请求用你的密匙进行认证。服务器收到请求之后,先在你在该服务器的宿主目录下寻找你的公匙,然后检查该公匙是 否是合法,如果合法就用公匙加密一随机数(即所谓的challenge)并发送给客户端软件。客户端软件收到 “challenge”之后就用私匙解密再把它发送给服务器。因为用公匙加密的数据只能用密匙解密,服务器经过比较就可以知道该客户连接的合法性。

注:在Xshell里“公钥”又称为“主机密钥”,“私钥”又称为“客户端密钥”

1. 登录远程主机,修改/etc/ssh/sshd_config文件,确保以下配置:
RSAAuthentication yes
PubkeyAuthentication yes

2. 回到客户端,创建RSA密钥对

ssh-keygen -t rsa
密钥名默认为id_rsa
密钥密语:如果想在使用密钥登录的时候要求客户端输入密语(注意密语与SSH密码不同),则设置密钥密语,一般默认为空

3. 默认情况下创建的RSA密钥对保存在~/.ssh文件夹里,分别为
id_rsa  ——>私钥,保存在客户端里
id_rsa.pub  ——>公钥,保存在服务器里

4. 将公钥文件上传至服务器的~/.ssh文件夹中,若没有.ssh文件夹,先新建一个再拷贝。

5. 将服务器端的~/.ssh/id_rsa.pub重命名为authorized_keys

6. 重启sshd服务

对于Xshell用户,可以通过Xshell创建RSA密钥对,然后同理从第三步开始操作。

发表评论

邮箱地址不会被公开。 必填项已用*标注

62 − 57 =