linux關(guān)閉密碼登錄

公網(wǎng)機(jī)器存在被攻擊的風(fēng)險(xiǎn),經(jīng)常會(huì)出現(xiàn)ssh登錄的時(shí)候,由于密碼輸錯(cuò)次數(shù)過多而被鎖住無法登錄的情況。原因是公網(wǎng)IP被攻擊,不斷嘗試ssh登錄,導(dǎo)致密碼輸錯(cuò)次數(shù)過多。
規(guī)避方法有1. 修改默認(rèn)端口號(hào)為非22端口, 2. 關(guān)閉密碼登錄功能,3. 配置防火墻,只允許指定IP的機(jī)器訪問。此處介紹關(guān)閉密碼登錄,使用密鑰登錄方法。

基礎(chǔ)操作

  1. 在客戶端生成密鑰對(duì)ssh-keygen,之后一直按回車即可。
  2. 將本地密鑰對(duì)的公鑰上傳到服務(wù)器。
  • ssh-copy-id -i ~/.ssh/id_rsd.pub root@IP。需要輸入服務(wù)器的密碼。如果ssh默認(rèn)端口不是22,需要加-p 端口號(hào)指定端口。
  • 或者手動(dòng)復(fù)制~/.ssh/id_rsd.pub中的內(nèi)容到服務(wù)器的~/.ssh/authorized_keys文件中。
  1. 直接免密登錄。ssh root@IP??梢杂?code>-p 端口號(hào)、-i key_file分別指定端口號(hào)和密鑰文件。
  2. 關(guān)閉密碼登錄。修改/etc/ssh/sshd_config文件,將PasswordAuthentication yes改為noPubkeyAuthentication yes改為yes(如果為no的話),然后重啟sshd服務(wù)systemctl restart sshd即可。

注意:私鑰文件的權(quán)限必須是600。

多環(huán)境配置

如果我們的服務(wù)器數(shù)量較多,每次要登錄不同環(huán)境,且每個(gè)環(huán)境使用的密鑰對(duì)不一致,則,可以通過~/.ssh/config文件來對(duì)環(huán)境進(jìn)行區(qū)分。

Host alias  # 別名,之后可以通過ssh alias來直接登錄
  User user # 用戶名
  HostName IP # 服務(wù)端IP
  Port port # 端口號(hào),可省略,默認(rèn)22
  IdentityFile /xxx/your_key # 密鑰文件,可省略,默認(rèn)~/.ssh/id_rsd
  ServerAliveInterval 360 # 會(huì)話保持時(shí)間,單位秒,可省略

跳板機(jī)

有時(shí)候,我們的目標(biāo)機(jī)器不能直接連接,需要先登錄跳板機(jī)然后在跳板機(jī)中登錄目標(biāo)機(jī)器。可以通過如下配置,然后ssh mubiaoji直接連接目標(biāo)機(jī)器。

Host tiaoban
 Hostname 跳板機(jī)的ip
 Port 跳板機(jī)的端口(如果是非22的需要填寫)
 User root(如果非root,換成跳板機(jī)的用戶)
Host mubiaoji
 Hostname 目標(biāo)機(jī)的IP
 Port 目標(biāo)機(jī)的端口(如果是非22的需要填寫)
 User root(如果非root,換成目標(biāo)機(jī)的用戶)
 ProxyCommand ssh -q -x -W %h:%p tiaoban

ProxyCommand用來指定連接到服務(wù)器的命令. 其可以是任何的命令,只要能從其標(biāo)準(zhǔn)輸入讀入數(shù)據(jù),然后寫出到標(biāo)準(zhǔn)輸出即可。這條命令需要連接到sshd服務(wù)器上。
在不使用ProxyCommand的情況下,ssh會(huì)自己建立到目標(biāo)機(jī)器22端口的連接.使用了ProxyCommand,那么使用指定命令來建立到目標(biāo)機(jī)的連接,ssh直接使用已經(jīng)建立的連接。

-W host:port 將client過來的標(biāo)準(zhǔn)輸入和輸出forward到host和port指定的地方.

這兒的%h表示要連接的目標(biāo)機(jī),也就是Hostname指定的ip或者主機(jī)名,%p表示要連接到目標(biāo)機(jī)的端口.這兒可以直接寫死固定值,但是使用%h和%p可以保證在Hostname和Port變化的情況下ProxyCommand這行不用跟著變化.

新版本的ssh可以通過ProxyJump來配置跳板機(jī)。

Host proxy
 Hostname 跳板機(jī)的ip
 Port 跳板機(jī)的端口(如果是非22的需要填寫)
 User root(如果非root,換成跳板機(jī)的用戶)
Host mubiaoji
 Hostname 目標(biāo)機(jī)的IP
 Port 目標(biāo)機(jī)的端口(如果是非22的需要填寫)
 User root(如果非root,換成目標(biāo)機(jī)的用戶)
 ProxyJump proxy

其他

  • 有些機(jī)器設(shè)置了禁止root用戶登錄功能,開啟方式為修改/etc/ssh/sshd_config文件中的PermitRootLogin noyes。
  • scp命令,可以通過scp -i you_key_file xxx root@IP:/xxxx來拷貝。
  • 配置了免密登陸后,存在問題需要用密碼登錄,可以用下面的命令ssh -o PreferredAuthentications=password xxx@xxx.xxx.xxx.xxx,當(dāng)然如果你服務(wù)端關(guān)閉了密碼登錄這條無效。
最后編輯于
?著作權(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ù)。

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