linux下ssh公鑰驗證的設定和遠端登入

2021-08-09 16:32:51 字數 1605 閱讀 5064

使用linux有一段時間了,最近在伺服器上假設了乙個git倉庫,每次提交時都使用密碼實在是比較***,因此就特意研究了一下如何使用ssh金鑰來登入伺服器。

ssh-keygen命令專門是用來生成金鑰的。該命令有很多選項,這裡列出了最基本的四個:

ssh-keygen -t rsa -p 123456 -f host -c 'my host key'意思就是新建了密語為123456注釋為my host key檔名為host的金鑰。此命令會生成hosthost.pub兩個檔案,前者為私鑰檔案,後者為公鑰檔案。如果你想免密登入的話,請將密語設定為空。

上一步生成了公鑰和私鑰後,需要將公鑰部署到伺服器並用私鑰登入。因此首先需要將建立的公鑰上傳到伺服器。使用scp或者你的工具將公鑰上傳到伺服器並將檔案內容追加到~/.ssh/authorized_keys中。例如:

#在本機上執行此命令,上傳公鑰

scp -p your_port host.pub user@hostname:/tmp

#在伺服器上執行此命令,追加到authorized_keys

cd /tmp && cat host.pub >> ~/.ssh/authorized_keys

#更改許可權

chmod 600 ~/.ssh/authorized_keys

開啟/etc/ssd/sshd_config檔案,將如下的配置開啟:

rsaauthentication

yespubkeyauthentication

yesauthorizedkeysfile

.ssh/authorized_keys

重啟sshdservice sshd restart或者systemctl restart sshd.service。重啟之後,伺服器已經支援遠端ssh連線了

本人是通過ssh命令來遠端連線伺服器的,通過ssh -p your_port username@domain -i your_private_certification命令,就可以連線到伺服器了。如果你是通過xshell或者putty來連線的話,匯入你的私鑰並連線就可以了。

如果你想只允許伺服器通過公鑰和私鑰的方式來連線伺服器的話,可以將伺服器配置檔案/etc/ssh/sshd_config中的passwordauthentication yes改為passwordauthentication no,不過在重啟sshd時不要關閉當前的連線,確認通過私鑰能連線到伺服器才可以關閉。否則,一旦私鑰連不上,密碼連線方式又被禁用了,恐怕你就要告別你的伺服器了。

SSH公鑰 public key 驗證

scp是linux下的遠端拷貝 命令 1 將本地檔案拷貝到遠端 scp 檔名 使用者名稱 計算機ip或者計算機名稱 遠端路徑 2 從遠端將檔案拷回本地 scp 使用者名稱 計算機ip或者計算機名稱 檔名本地路徑 3 將本地目錄拷貝到遠端 scp r目錄名 使用者名稱 計算機ip或者計算機名稱 遠端路...

Mac環境下git生成SSH公鑰

1.進入.ssh目錄 開啟mac終端 terminal 輸入以下命令 cd ssh2.檢視是否有已存在的公鑰 輸入以下命令檢視目錄下的所有檔案 ls檢查目錄下是否有名為id rsa.pub的檔案。公鑰檔案s.png 如果已經存在且不需要新的公鑰,就可以直接開啟該檔案,獲取到公鑰。輸入以下命令開啟檔案...

Mac環境下git生成SSH公鑰

輸入下面的命令 cd ssh輸入命令ls 檢視目錄下的所有檔案 ls我的電腦有生成過,下面的id rsa.pub就是公鑰檔案 使用 cat 檔名稱 來檢視檔案 cat id rsa.pub以ssh rsa 開頭的就是公鑰 mkdir key backup cp id rsa key backup r...