ssh-config的使用


使用SSH的配置文件可以在很大程度上方便各種操作,特別適應於有多個SSH帳號、使用非標准端口或者寫腳本等情況。

man ssh_config

可以查看手冊

如果之前是用密碼方式來登錄SSH,需要先改用證書方式。可以看最后面生成SSH證書

配置文件

用戶配置文件在~/.ssh/config,沒有的話新建一個。基本的寫法是

Host 名稱(自己決定,方便輸入記憶的)
    HostName 主機名
    User 登錄的用戶名

假設有兩個SSH帳號,一個是github的,一個是其他服務器的,私鑰都是~/.ssh/id_rsa,可以這樣寫:

Host github.com
    HostName github.com
    User git

Host server
    HostName 服務器地址
    User 登錄用戶名

注意,github的Host必須寫成“github.com”。你可以會有其他要求,比如指定端口號、綁定本地端口,這些都可以通過man來查詢,比如

Port 端口號
DynamicForward 本地端口號

如果服務器同時有ipv4/ipv6地址,HostName使用域名會比較方便

使用

有了這些配置,很多操作就非常簡化了。比如登錄服務器

ssh server

傳輸文件

scp server:~/test . 

如果使用Putty等工具,可能需要一些其他操作(轉換私鑰格式,貌似),自行搜索吧

生成SSH證書

先在本地生成密鑰

ssh-keygen -t rsa

會詢問將密鑰放在何處,默認即可。然后是輸入密碼,留空(否則你登錄不僅需要私鑰還要輸入密碼)。

完成后在~/.ssh目錄下會生成另個文件id_rsaid_rsa.pub,一個私鑰一個公鑰。之后將id_rsa.pub上傳到服務器端用於SSH登錄的用戶的家目錄下。執行

cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm id_rsa.pub  

修改服務器端的sshd配置。編輯/etc/ssh/sshd_config如下

PubkeyAuthentication yes
PasswordAuthentication no

之后重啟sshd服務

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM