ssh的簡(jiǎn)介與常用用法

文檔:

  • man ssh, ssh_config sshd, sshd_config

簡(jiǎn)介

ssh 為 secure shell 的英文縮寫,是一種加密的網(wǎng)絡(luò)傳輸協(xié)議。常用于登錄遠(yuǎn)程服務(wù)器與在遠(yuǎn)程服務(wù)器上執(zhí)行命令。

SSH 使用客戶端-服務(wù)器模型,標(biāo)準(zhǔn)端口為 22。服務(wù)器端需要開啟 SSH 守護(hù)進(jìn)程接受遠(yuǎn)端的連接,而用戶需要使用 SSH 客戶端與服務(wù)端連接。

最常見的開源實(shí)現(xiàn)是 OpenSSH

基本用法:

登錄:

$ ssh user@host # 如果不指明 user,默認(rèn)使用當(dāng)前用戶。

在遠(yuǎn)程機(jī)器上執(zhí)行 command,把 stdout,stderr 送回來然后斷開連接:

$ ssh user@host [command]

常用參數(shù):

  • -F configfile:指定配置文件,默認(rèn) ssh 會(huì)使用 ~/.ssh/config 中的配置。
  • -p port:指定端口號(hào),默認(rèn)使用標(biāo)準(zhǔn)端口號(hào) 22。

scp 遠(yuǎn)程傳輸文件

scp 是一個(gè)命令行工具,是英文 secure copy 的縮寫,用于在服務(wù)器和客戶端之間傳輸文件,操作類似cp。

使用注意點(diǎn):遠(yuǎn)程主機(jī)名后要加個(gè)冒號(hào)再跟路徑。如:

$ scp <path> <username>@<host>:/home/valleygtc # copy local file -> remote

$ scp <username>@<host>:/path <path> # copy remote file -> local

SSH 免密登錄:

SSH 以非對(duì)稱加密實(shí)現(xiàn)身份驗(yàn)證。身份驗(yàn)證有多種途徑,可以使用密碼來認(rèn)證,也可以通過實(shí)現(xiàn)配置好的密鑰文件來認(rèn)證。

通過密鑰認(rèn)證登錄的條件:

  1. 公鑰(public key)儲(chǔ)存在服務(wù)端的 ~/.ssh/authorized_keys 文件中。
  2. 私鑰(private key)儲(chǔ)存在客戶端的 ~/.ssh/id_rsa 文件中即可。

我們通常使用 ssh-keygen 這個(gè)工具來生成公鑰和私鑰,如下:

$ mkdir ~/.ssh

$ chmod 700 ~/.ssh # 僅允許自己讀寫此目錄。

$ ssh-keygen -t rsa -b 4096 # RSA 算法。

這會(huì)生成兩個(gè)文件 ~/.ssh/id_rsa~/.ssh/id_rsa.pub ,前者是私鑰,我們應(yīng)該小心保護(hù),后者是公鑰,應(yīng)當(dāng)將其放到服務(wù)端的 ~/.ssh/authorized_keys 中去,我們可以使用 ssh-copy-id 這個(gè)工具來完成:

$ ssh-copy-id -i .ssh/id_rsa.pub <username>@<host>

或者手動(dòng)將其復(fù)制粘貼過去。

也可以使用如下命令:

$ ssh user@host 'mkdir .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

通過跳板機(jī)來 ssh 連接服務(wù)器

跳板機(jī),又常叫做“Bastion host”。

在企業(yè)中,業(yè)務(wù)服務(wù)器通常有 ip 限制,不允許直接從辦公機(jī)登錄,而是需要先登錄一個(gè)跳板機(jī),通過跳板機(jī)來登錄業(yè)務(wù)服務(wù)器。

這樣做的目的是:隔離內(nèi)部網(wǎng)絡(luò),只允許從跳板機(jī)訪問,那么我們只需要特別關(guān)注跳板機(jī)的安全配置就可以了,便于更好的進(jìn)行安全控制。

我們可以配置 ssh 客戶端,讓 ssh 替我們處理跳板機(jī)的登錄,避免多次輸入命令的負(fù)擔(dān)。

假設(shè)我們有跳板機(jī) jumpserver 和 目標(biāo)服務(wù)器 targetserver。

方法一、使用命令行的 -J 參數(shù)

$ ssh -J user@jumpserver:22 -p 22 root@targetserver

方法二、配置文件:~/.ssh/config

Host targetserver
  ProxyJump user@jumpserver:22

然后就可以直接:

$ ssh -p 22 root@targetserver

sshd 安全配置

sshd 的配置文件:/etc/ssh/sshd_config

我們可以修改 sshd 的默認(rèn)配置來增強(qiáng)系統(tǒng)的安全性,以下是一些需要注意的配置項(xiàng):

Port 22 # sshd 監(jiān)聽端口。我們通常不希望使用 22 這一標(biāo)準(zhǔn)端口,以減少惡意登錄嘗試。
PasswordAuthentication yes|no # 是否允許使用密碼登錄,默認(rèn)為yes。出于安全考慮,最好禁用密碼登錄,僅允許通過密鑰文件的方式登錄,以降低密碼被暴力破解的可能性。

參考:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自:https://blog.51cto.com/3381847248/2066599 一、ssh詳解 1、什么...
    950545c4cd64閱讀 51,415評(píng)論 0 6
  • ssh常用用法小結(jié) 在我們?nèi)粘5墓ぷ髦?,?jīng)常涉及到維護(hù)服務(wù)器,那么為了方便操作,以及安全方面的考慮,通常我們都會(huì)在...
    大晴天小陽光閱讀 3,288評(píng)論 0 3
  • linux下安裝SSH服務(wù)及使用詳解 ssh服務(wù)介紹說明 secure shell protocol簡(jiǎn)稱SSH,是...
    謙豫_ebac閱讀 7,183評(píng)論 1 7
  • 對(duì)于linux運(yùn)維工作者而言,使用ssh遠(yuǎn)程遠(yuǎn)程服務(wù)器是再熟悉不過的了!對(duì)于ssh的一些嚴(yán)格設(shè)置也關(guān)系到服務(wù)器的安...
    泡菜愛上WaSabi閱讀 913評(píng)論 0 0
  • 目標(biāo) 了解SSH是什么 服務(wù)端安裝SSH 客戶端安裝SSH ssh連接遠(yuǎn)程服務(wù) ssh config配置講解(多服...
    Peter潘的博客閱讀 2,101評(píng)論 0 0

友情鏈接更多精彩內(nèi)容