Linux 遠端 ssh 登入

dbLenis發表於2018-08-18

1 ssh 登入

在 Linux 之間相互登入的時候,通常可以用 ssh 來從命令列視窗登入。

比如在 centos00 上需要登入 centos01 ,執行一些操作,可以在 centos00 的命令視窗中執行:

ssh centos01
Warning: Permanently added the ECDSA host key for IP address '192.168.1.10' to the list of known hosts.

此時我們需要輸入密碼, 並且預設登入使用者是當前連線的使用者。

如果我們使用的使用者是遠端伺服器上不存在的使用者,會如何?

當然是無法登陸。

在 Linux 下新建一個使用者並設定其密碼:

useradd srvrep -U
passwd srvrep

使用 ssh 去登入遠端伺服器,發現登入不了

Permission denied, please try again.

因此需要在遠端伺服器上預先建立同名使用者。

是否可以藉助命令列客戶端,使用指定賬戶來登入遠端伺服器

即使本地沒有建立遠端伺服器上的有效賬戶,也依然可以藉助本地的命令列視窗,使用有效的賬戶來登入遠端伺服器。

ssh licy@centos00

執行之後,會提示輸入相應的密碼來登入。

2 無密碼登入

無密登入也是通過 ssh 實現的,大概步驟如下:

  1. 在客戶端(經常使用其來登入遠端伺服器)生成一對金鑰對
  2. 將公鑰放入遠端伺服器賬戶下

生成金鑰對的命令工具是:

ssh-keygen [-t rsa|dsa ]

如果沒有指定特定的加密演算法,預設是用 rsa 來加密。

[huangyun@centos00 ~]$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/huangyun/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/huangyun/.ssh/id_rsa.
Your public key has been saved in /home/huangyun/.ssh/id_rsa.pub.
The key fingerprint is:
00:3a:11:95:62:01:de:f0:20:a6:62:5d:b4:f3:ea:d7 huangyun@centos00
The key's randomart image is:
+--[ RSA 2048]----+
|o=++++           |
|= Ooo..          |
|o+o= o.          |
|o  .  o.         |
|       .S        |
|      .          |
|     .  .        |
|    .  . E       |
|     ..          |
+-----------------+
[huangyun@centos00 ~]$

無密登入,如果在生成 key 的過程中,指定了密碼,會有怎麼樣的效果,上面的例子便是指定了密碼的,l*******n*****6.

將 /home/huangyun/.ssh/id_rsa.pub 新增到遠端伺服器 centos01 的公鑰檔案下:

scp id_rsa.pub huangyun@centos01

需要在遠端伺服器 centos01 下將公鑰加入本賬戶下的 ~/.ssh/authorized_keys 檔案中去。

 cat id_rsa.pub >>.ssh/authorized_keys
 chmod 644 authorized_keys

authorized_keys 檔案可能不在.ssh 目錄下,但 cat 命令會自動建立它。也有可能不起效果,那麼就要檢視 sshd 配置檔案對 authorized_keys 的配置指定了:

cat /etc/ssh/sshd_config

當在生成公私鑰的過程中,如果指定了 passphrase 那麼依舊需輸入密碼

[huangyun@centos00 .ssh]$ ssh centos01
Enter passphrase for key '/home/huangyun/.ssh/id_rsa':
huangyun@centos01's password:

所以刪除這些檔案,重複一邊上面的流程,在生成 key 的時候,不指定密碼即可。

相關文章