當前位置:首頁 » 存儲配置 » 如何配置用密鑰登錄遠程主機

如何配置用密鑰登錄遠程主機

發布時間: 2023-03-24 16:10:35

linux公鑰登錄遠程伺服器

1、公私鑰簡介與原理

公鑰和私鑰都屬於非對稱加密演算法的一個實現,這個加密演算法的信息交換過程是:

非對稱加密演算法不能使用相同的密鑰進行解密,也就是說公鑰加密的只能使用私鑰進行解密。

2、使用密鑰進行ssh免密登錄

ssh使用私鑰登錄大致步驟就是:主機A(客戶端)創建公鑰私鑰,並將公鑰復制到主機B(被登陸機)的指定用戶下,然後主機A使用保存私鑰的用戶登錄到主機B對應保存公鑰的用戶。

** 兩台主機:**

ssh-keygen -t rsa
-t rsa可以省略,默認就是生成rsa類型的密鑰

ssh--id -i ~/.ssh/id_rsa.pub [email protected]

** 方法二:自己創建文件進行拷貝**

② 配置ssh遠程登錄

本地和遠程伺服器都創建

在創建密鑰的時候,可以定義加密類型和長度,具體可以參考ssh-keygen命令幫助。創建的過程中,首先會提示你 保存的位置 和 文件名 ,再提示你 給密鑰加個密碼 ,也可以直接回車不要密碼。

公鑰和私鑰默認保存這用戶目錄的 /.ssh/ 文件夾下。默認情況下, id_rsa 為私鑰, id_rsa.pub 為公鑰。

此時 還是需要用用戶名和密碼登錄遠程Linux伺服器。使用vi編輯 /etc/ssh/sshd_config 文件,先打開 PubkeyAuthentication 和 PermitRootLogin ,一般只要把這幾個參數前面的#(注釋符)刪掉即可。

重啟ssh服務

在macOS端操作以下命令,把公鑰上傳到遠程伺服器,會提示輸入遠程的Linux伺服器的密碼。

在遠程Linux伺服器上,操作以下命令,把公鑰 追加 到伺服器ssh認證文件中:

如果沒有 authorized_keys 這個文件,請到 .ssh 文件夾下創建一個,並把許可權設置為600。

追加好後,如果要禁止用戶名密碼登錄,再編輯 /etc/ssh/sshd_config 文件,把 PasswordAuthentication 設置為no。

重啟SSH服務(每次修改ssh配置都需要重啟)

如果沒有設置密鑰密碼,直接這終端輸入 ssh root@IP 即可登錄遠程伺服器。如果該用戶下沒有公鑰,則會提示Permission denied。

③ 如何使用RSA密鑰登陸ssh

設置root密碼

1
使用原密鑰登陸遠程主機,默認登陸用戶為ubuntu
得到遠程機IP
如祥攜果是aws,在EC2控制台查看一下實例的公有 IP,復制一下
cmd
ssh -i 密鑰 [email protected]
2
空密碼不讓登陸的,所以要給root一個新密碼
su
passwd root
輸入兩次新密碼就可以了
END
修改/etc/ssh/sshd_config

修改
vi /etc/ssh/sshd_config

密碼登陸

PermitRootLogin yes
StrictModes no
PermitEmptyPasswords yes
PasswordAuthentication yes

密鑰登陸

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_rsa1_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/前冊.ssh/authorized_keys

如果不想一個個改,也可以復制粘貼

全文如下
#/etc/ssh/sshd_config
# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/謹悔伏ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_rsa1_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes no

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords yes

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM moles and threads)
no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and to 'no'.
UsePAM yes
生成私鑰
ssh-keygen -t dsa /etc/ssh/ssh_host_dsa_key
ssh-keygen -t ecdsa /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 /etc/ssh/ssh_host_ed25519_key
ssh-keygen -t rsa /etc/ssh/ssh_host_rsa_key
ssh-keygen -t rsa1 /etc/ssh/ssh_host_rsa1_key

chmod 600 /etc/ssh/*key
復制公鑰到authorized_keys

cat /etc/ssh/ssh*pub>>/home/ubuntu/.ssh/authorized_keys
cat /home/ubuntu/.ssh/authorized_keys >/root/.ssh/authorized_keys
chmod 644 /root/.ssh/authorized_keys

使用ubuntu的私鑰就可以登陸了

也可以把/etc/ssh/下的key復制粘貼過來
/etc/ssh/ssh_host_dsa_key
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_rsa_key

重啟遠程機

就可以直接用root登陸了
使用密碼
ssh [email protected]

或者使用密鑰

ssh -i ssh_host_dsa_key root@ip
ssh -i ssh_host_ecdsa_key root@ip
ssh -i ssh_host_ed25519_key root@ip
ssh -i ssh_host_rsa_key root@ip
ssh -i ssh_host_rsa1_key root@ip

④ SSH 之遠程登錄

從客戶端來看,SSH提供兩種級別的安全驗證。

對於第二種級別,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網路上傳送口令。第二種級別不僅加密所有傳送的數據,而且「中間人」這鉛乎種攻擊方式也是不可能的(因為他沒有用戶的私人密匙)。但是整個登錄的過程可能需要10秒。

將本地用戶生成的公鑰推送至遠程伺服器後,遠程主機將用戶的公鑰,保存在登錄後的用戶主目錄的$HOME/.ssh/authorized_keys文件中。公鑰就是一段字元串,只要把它追加在authorized_keys文件的末尾就行了。
這里不使用ssh--id命令,改用下面的命令,來解釋公鑰的保存過程:

輸入命令 ssh user@host ,然後根據提示輸入遠程伺服器的登錄密碼

也可在配置文件/etc/ssh/ssh_config 中設置user和host(ip), 來簡化命令, 配置如下:

配置後, 登錄請求時只需輸入如洞悉下命令:

使用密碼登錄,每次都必須輸入密碼,非常麻煩。好在SSH還提供了公鑰登錄,可以省去輸入密碼的步驟。
公鑰登錄原理 :就是用戶將自己的公鑰儲存在遠程主機上。登錄的時候,遠程主機會向用戶發送一段隨機字元串,用戶用自己的私鑰加密後,再發回來。遠程主機用事先儲存的公鑰進行解密,如果解密驗證成功,就證明用戶是可信的,直接允許登錄shell,不再要求密碼。

執行上述命令首先會讓你輸入生成密鑰的文件名: myPemKey (自定義),之後一路回車。

配置後,登錄遠槐顫悉程伺服器時只需輸入一下命令,便可直接登錄成功:

修改後重啟ssh服務

則遠程連接時指定埠

(1) 通過iptables設置ssh埠的白名單,如下設置只允許192.168.1.0/24網段的客戶機可以遠程連接本機

(2) 通過/etc/hosts.allow裡面進行限制(如下),/etc/hosts.deny文件不要任何內容編輯,保持默認!

例如:

修改遠程伺服器ssh服務配置文件/etc/ssh/sshd_config

修改遠程伺服器配置文件/etc/ssh/sshd_config, 如下:

如果本機系統有些賬號沒有設置密碼,而ssh配置文件里又沒做限制,那麼遠程通過這個空密碼賬號就可以登陸了,這是及其不安全的,所以一定要禁止空密碼登陸。
修改遠程伺服器配置文件/etc/ssh/sshd_config,如下:

參考:

⑤ 如何用SSH密鑰遠程登錄騰訊雲linux伺服器

1.要登錄騰訊雲LINUX伺服器,需要用SSH軟體。例如XSHELL。
2.以在東芝L315筆記本電腦為例。系統是WIN
VISTA。
3.運行XSHELL軟體,點擊文件,新建。
4.在主機處填寫伺服器IP地址。
5.點擊用戶身份驗證,填寫伺服器用戶名和密碼。LINUX伺服器默認用戶名是root。填好後點擊確定。
6.在會話對話框中選擇剛才創建的伺服器,點擊連接。
7.XSHELL軟體會自動進行連接,連接成功後,就成功登錄到雲伺服器了,可以進行安裝面板等相應操作。

⑥ SSH協議、openSSH遠程口令及密鑰登錄配置

SSH(Secure Shell)協議為遠程登錄或其它網路服務(如:sftp、scp)提供安全保障的一種協議。它設計之初的主要目的是替代telnet遠程登錄協議,由於telnet協議以明文的方式在互聯網上傳遞數據和伺服器賬戶口令,別有用心的人很容易就可以截獲得到這些數據和口令。以下是SSH詳細的登錄過程:

a、版本號協商階段

伺服器端啟動ssh服務,並打開22號埠(也可以配置為其它埠),等待客戶端鏈接。客戶端向伺服器端發起TCP連接。連接建立後,伺服器端和客戶端開始商議欲使用的協議版本號。如果協商成功,進入密鑰和演算法協商階段,否則,斷開TCP連接。

b、密鑰和演算法協商階段

伺服器端和客戶端分別向對方發送演算法協商報文,其中包括了自己支持的非對稱加密演算法列表、加密演算法列表、消息驗證碼演算法列表、壓縮演算法列表等。伺服器端和客戶端根據雙方支持的演算法得出最終使用的演算法(如非對稱加密演算法是採用RSA,還是DSA)。協商完成後羨鏈,伺服器端將自己的公鑰發送給客戶端,客戶端根據公鑰指紋決定是否信任此主機。選擇信任此主機後,客戶端使用伺服器端的公鑰將自己生成的會話密鑰加密,發送給伺服器端。以後的會話內容和口令都通過此會話密鑰加密發送。通常,每過一個小時,伺服器端和客戶端會重新商定會話密鑰,以防止會話密鑰被暴力破解。

c、認證階段

基於口令的認證:

客戶端採用在演算法協商階段產生的會話密鑰加密帳號、認證方法、口令,並將其傳送給伺服器端。伺服器端收到後將其解密後,基於本地賬戶密碼對其判斷是否正首脊確。如果正確,成功建立登錄連接,否則,向客戶端返回認證失敗報文,其中包含了可再次認證的方法列表。當登錄請求次數達到可允許的嘗試上限次數後,伺服器端斷開本次TCP連接,並限制此帳號連接請求。

基於密鑰的認證:

客戶端使用ssh-keygen工具在本地家目錄的.ssh/目錄下生成一對密鑰(如:公鑰id_rsa.pub、私鑰id_rsa)。並將公鑰追加保存到將要登錄的伺服器上的那個帳號家目錄的.ssh/authorized_keys文件中。客戶端使用演算法協商階段生成的會話密鑰加密帳號、認證方法、公鑰,並將其傳送給伺服器端。伺服器端收到後將解密後的公鑰與本地該帳號家目錄下的authorized_keys中的公鑰進兄芹孫行對比。如果內容不相同,認證失敗,否則伺服器端生成一段隨機字元串,並先後用客戶端公鑰和會話密鑰對其加密,發送給客戶端。客戶端收到後將解密後的隨記字元串用會話密鑰加密發送給伺服器端。如果發回的字元串與伺服器端起先生成的一樣,則認證通過,否則,認證失敗。

openssh便是SSH的一個開源實現。本文後續部分將簡要介紹如何用openssh基於口令和密鑰的遠程登錄。

示例:

# ssh [email protected]

如果是第一次登錄遠端主機,系統會出現以下提示:

因為協議本身無法確認遠端伺服器的真實性,用戶自行根據提供的經SHA256演算法提取的公鑰指紋判斷其真實性。如果確認為真,則輸入帳號密碼以登錄伺服器端。

a、首先在客戶端生成一對密鑰

示例:

b、將客戶端公鑰保存到伺服器端

示例:

另外,可以不使用ssh--id命令,改用以下命令,可以更好的理解公鑰的保存過程:

c、登錄驗證

如果仍然無法無口令登錄,請檢查sshd配置文件/etc/ssh/sshd_config,並將以下幾行前面的注釋符號取消。

⑦ 如何使用SSH密鑰登錄

1、配置私鑰
使用的賬號為test2
a、使用命令ssh-keygen
-t
rsa生成密鑰,會生成一個私鑰和一個公鑰,在提示輸入passphrase時如果不輸入,直接回車,那麼以後你登錄伺服器就不會驗證密碼,否則會要求你
輸入passphrase,默認會將私鑰放在/home/test2/.ssh/id_rsa公鑰放在
/home/test2/.ssh/id_rsa.pub。
b、將公鑰拷貝到遠程伺服器上的/test/.ssh/authorized_keys文件
[test2@test2
~]$
cd
~/.ssh
[test2@test2
.ssh]scp
id_rsa.pub
[email protected]:~/
-----------------------------------------------------------------------
[test@linux
~]mkdir
.ssh
[test@linux
~]$
cp
id_rsa.pub
.ssh/authorized_keys
注意,如果已經有authorized_keys文件的話,最好用cat
id_rsa.pub
>>
.ssh/authorized_keys

c、客戶端上保留私鑰,公鑰留不留都可以。也就是伺服器上要有公鑰,客戶端上要有私鑰。這樣就可以實現無密碼驗證登錄了。
2、如果想要獲得最大化的安全性,禁止口令登錄,可以修改www.example.com上/etc/ssh/sshd_conf中的
passwordauthentication
yes
改為
passwordauthentication
no
也即只能使用密匙認證的openssh,禁止使用口令認證。
3、windows的客服端上如何使用putty登陸,需要把秘鑰進行下轉換才可以使用秘鑰連接,步驟如下:
a.將私鑰復制到windows客戶端,使用puttygen導入私鑰,點擊「save
private
key」進行私鑰的轉換
b.打開putty,添入「hostname」、「port」,然後選擇左面導航里的「connection」->「data」,在「auto-login
username」里添入你要登陸的用戶名;在「ssh」->「auth」里導入轉換後的秘鑰文件。
c.單擊「open」登陸。
4.另外,最好禁止root用戶的登陸,修改/etc/ssh/sshd_config里的「permitrootlogin"為no,可禁止root用戶登陸。
5.也可以限制某個用戶或者用戶組的登陸,使用"denyusers"和"denygroups"即可。

⑧ 使用 SSH-Key 登錄遠程伺服器

ssh 提供兩種級別的安全認證:

需要知道用戶名和密碼即可登錄,該連接是加凱缺密的,但客戶端不能確認目標主機是否為「偽造的」,也不能保證口令安全。

遠程主機的 /etc/ssh/sshd_config 需配置:

重啟 sshd 使改動生效:

需要用戶持有「公鑰/私鑰對」,慶褲遠程伺服器持有公鑰,本地持有私鑰。

客戶端向伺服器發出請求。伺服器收到請求之後,先在用戶的主目錄下找到該用戶的公鑰,然後對比用戶發送過來的公鑰。如果一致,伺服器用公鑰加密「質詢」並發送給客戶端。客戶端收到「質詢」後用私鑰解密,再發還給伺服器。認證結束。

生成 ssh-key,選加密演算法(rsa、dsa),給秘鑰命名(可選):

passphrase 是證書口令,以加強安全性,避免證書被惡意復制。

會在 ~.ssh 下生成 id_rsa , id_rsa.pub 兩個文件,分譽孫簡別是 私鑰/公鑰。

公鑰需保存到遠程伺服器 ~/.ssh/authorized_keys 里,私鑰由客戶端本地留存。

要保證 .ssh 和 authorized_keys 都只有用戶自己有寫許可權。否則驗證無效。

簡單情況下,通過手動指定私鑰文件登錄

覺得麻煩可以配置客戶端的 /etc/ssh/ssh_config

你也可以使用 SSH Agent,下面以使用 GitHub 為場景簡單介紹。

創建 ~/.ssh/config

配置完成後,在連接非默認賬號的倉庫時,遠端地址要修改為

⑨ Xshell使用密鑰方式登陸

連接遠程主機,就驗證身份而言,一般有兩種方式,一種是通過用戶密碼;另一種通過公鑰的迅消方式(Public Key)。

圖1xshell支知閉持驗證登錄用戶的方式

下面就使用Public Key的方式來實現連接,通過工具ssh-kengen生成密鑰對。

注意: 操作之前需要ping通本機和目的主機 (如果ping不通,可能的原因是防火牆、SELinux沒關閉,或者網關設置有問題等)

使用XShell,這里使用的是XShell manager 5,目的主機為CentOS7,將需要連接的遠程主機稱為目的主機。

[root@m01 ~]# vim /root/.ssh/authorized_keys 裡面輸入公鑰 到時搭昌裂連接時 進行匹配

圖2選擇密鑰文件

圖3導入私鑰並確定

注意:點擊確定之後還要重新連接一次

圖4連接成功

客戶端使用私鑰去驗證,而遠程主機使用公鑰驗證。

熱點內容
液晶電視換存儲器 發布:2024-05-08 14:03:37 瀏覽:965
php交集 發布:2024-05-08 13:46:57 瀏覽:512
internet快速存儲 發布:2024-05-08 13:26:50 瀏覽:978
編程代碼基礎 發布:2024-05-08 13:23:40 瀏覽:612
安卓手機用哪個手機穩定器 發布:2024-05-08 13:22:51 瀏覽:598
個密碼演算法 發布:2024-05-08 13:18:27 瀏覽:384
編程四要素 發布:2024-05-08 13:13:21 瀏覽:300
手機扣扣如何設置密碼 發布:2024-05-08 13:04:35 瀏覽:238
sql注入攻擊與防禦 發布:2024-05-08 12:58:38 瀏覽:317
dw網頁設計如何連接伺服器 發布:2024-05-08 12:33:02 瀏覽:466