Linux SSH Publickey登录!

ssh 登陆验证分两种: password 和publickey

password方式:
通过用户名和密码的方式验证身份!

publickey方式:
publickey方式使用publickey privatekey的方式验证,你需要生成一对publickey privatekey.
把publickey放到服务器上.你登陆的时候,服务器会用你的publickey去验证用你的用privatekey加密过的信息.
由于服务器上的只是publickey,即使被黑了,也不怕密码丢失.比上面那种password方式更加安全.

操作步骤:

1.建立公钥与私钥

# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): ← 钥匙的文件名,这里保持默认直接回车
Enter passphrase (empty for no passphrase): ← 输入口令,如想无口令认证直接回车
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
1e:16:9e:d5:d2:6a:b6:e2:a0:de:14:b2:eb:d1:5e:03

#cd ~/.ssh ← 进入用户SSH配置文件的目录
# ls -l ← 列出文件
total 8
-rw------- 1 root root 668 Feb 26 14:01 id_dsa ← 确认私钥已被建立
-rw-r--r-- 1 root root 616 Feb 26 14:01 id_dsa.pub ← 确认公钥已被建立
# cat id_dsa.pub >>authorized_keys2 ← 公钥内容输出到相应文件中
# chmod 400 authorized_keys2 ← 将新建立的公钥文件属性设置为400

2.分别把id_dsa id_dsa.pub 拷贝到Client端

3.删除Server端的公钥

rm -f ~/.ssh/id_rsa.pub  ← 删除原来的公钥文件

4. Client软件配置

(1)SecureCRT配置
选择对应的session-->右键单击属性选项(将出现图一画面)-->SSH2-->首先把password的对勾取消,然后选中PublicKey-->单击右边的属性按钮.(将出现图二画面)-->选择使用会话公钥设置-->使用身份或证书文件-->id_dsa.pub(选中刚从服务器上拷贝下来的公钥和私钥文件)。



(2)PUTTY配置方式此处配置方式来自Centospub
[1] 下在私钥转换工具 PuTTYGen 。
[2] 运行 PuTTYGen ,出现如下窗口:

[3] 点击Load,选取服务器端生成的私钥(文件类型要选择“All Files”)。如下

[4] 开始转换私钥,这里需要输入在服务器端建立此私钥时的口令。在文本框中输入口令开始转换,如下:

[5] 如果转换成功后,会弹出转换成功的提示窗口,点击确定进入下一步。如下:

[6] 保存转换后的私钥匙到适当的位置(转换后的私钥将做为PuTTY登录到服务器时使用的私钥)。点击“Save private key”,并选择适当的位置保存私钥。如下:


最后,关闭PuTTYGen,下面我们开始用PuTTY远程登录服务器。
[7] 下载 PuTTY ,放在适当的目录(文件夹)中。
[8] 双击启动 PuTTY ,在左侧找到Auth(认证方式)一项,对连接是使用的私钥进行设定,如下:

[9] 点击Browse,选择刚刚用PuTTYGen转换后的私钥。如下:


然后点击左侧的Session,回到主机连接信息的设置,如下:

[10] 配置主机名,在“Host Name”填入服务器的IP地址,以及在“Saved Sessions”栏上填入此连接的名称(任意),然后点击Save,保存主机连接设置。如下:

[11] 保存后,“Saved Sessions”一栏中会显示刚刚被加入的连接。双击此连接,开始进行连接,如下

[12] 然后在登录窗口中输入服务器端,相应用户的用户名,如下:

由于我没有设置私钥密码所以输入完用户名后直接敲回车就登录到服务器上了!

原文地址:https://www.cnblogs.com/storymedia/p/4436183.html