Linux下sftp登錄失敗的解決方案
Linux下sftp登錄失敗
背景:合作方通過公網(wǎng)入口IP的2266端口訪問我方sftp,我方nginx將2266端口轉(zhuǎn)發(fā)到sftp服務(wù)器的22端口。
合作方突然反饋sftp登錄報(bào)錯
Couldn't read packet: Connection reset by peer

1. 查看sftp服務(wù)器22端口,正常。
2. 聯(lián)系合作方,確認(rèn)公網(wǎng)出口IP未發(fā)生變化。
3. sftp服務(wù)器上查看該sftp用戶的ChrootDirectory目錄及其上層目錄,owner都為root,權(quán)限755
[root@SCA-ABC123456 ~]# ll -d /nfcs/ drwxr-xr-x 3 root root 17 Mar 19 2020 /nfcs/ [root@SCA-ABC123456 ~]# ll -d /nfcs/data/ drwxr-xr-x 3 root root 4096 Mar 19 2020 /nfcs/data/ [root@SCA-ABC123456 ~]# ll -d /nfcs/data/sftp/ drwxr-xr-x 11 root root 4096 Jul 19 18:28 /nfcs/data/sftp/
4. 本地登錄,輸入密碼后直接提示Connection closed
[root@SCA-ABC123456 ~]# sftp sftp@localhost sftp@localhost's password: Connection closed [root@SCA-ABC123456 ~]#
5. 查看用戶密碼有效期
[root@SCA-ABC123456 ~]# chage -l sftp Last password change : May 17, 2021 Password expires : Aug 15, 2021 Password inactive : never Account expires : never Minimum number of days between password change : 7 Maximum number of days between password change : 90 Number of days of warning before password expires : 15 [root@SCA-ABC123456 ~]#
可以看到該賬號密碼有效期90天,剛過期。
延長該賬號密碼有效期,可以直接修改/etc/shadow文件,或者chage -M,操作后立即生效,無需修改密碼,直接使用之前的密碼即可登錄。
Linux ssh/sftp/scp免密登錄
Linux上實(shí)現(xiàn)SSH、SFTP和SCP的免密登錄(一般是root用戶),可以按照以下步驟進(jìn)行設(shè)置:
1. 在本地機(jī)器上生成SSH密鑰對
打開終端并輸入以下命令:
ssh-keygen -t rsa
然后按照提示輸入密鑰的保存位置和密碼(如果需要),或者直接按回車鍵接受默認(rèn)值。
這將生成一個公鑰(id_rsa.pub)和一個私鑰(id_rsa)。
2. 將公鑰復(fù)制到遠(yuǎn)程服務(wù)器
使用以下命令將公鑰復(fù)制到遠(yuǎn)程服務(wù)器上的authorized_keys文件中:
ssh-copy-id user@remote_host
將user替換為在遠(yuǎn)程服務(wù)器上的用戶名,remote_host替換為遠(yuǎn)程服務(wù)器的主機(jī)名或IP地址。在執(zhí)行此命令之前,可能需要輸入遠(yuǎn)程服務(wù)器的密碼。
如果ssh-copy-id命令不可用,可以手動將公鑰內(nèi)容追加到遠(yuǎn)程服務(wù)器的~/.ssh/authorized_keys文件中 (
scp ~/.ssh/id_rsa.pub user@remote_host:~/.ssh/id_rsa.pub (此次需要輸入密碼) cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
)
3. 驗(yàn)證免密登錄
使用以下命令嘗試通過SSH連接到遠(yuǎn)程服務(wù)器:
ssh user@remote_host
如果沒有設(shè)置密鑰密碼,將直接連接到遠(yuǎn)程服務(wù)器,而無需輸入密碼。如果設(shè)置了密鑰密碼,則需要提供密鑰密碼才能連接。
4. 配置SFTP和SCP的免密登錄
一旦成功實(shí)現(xiàn)了SSH的免密登錄,SFTP和SCP也會自動使用相同的密鑰進(jìn)行免密登錄。
可以使用以下命令進(jìn)行測試:
sftp user@remote_host
或
scp file user@remote_host:/path/to/destination
這些命令將直接連接到遠(yuǎn)程服務(wù)器,而無需輸入密碼。
請注意:
以上步驟中的user和remote_host應(yīng)替換為自己的用戶名和遠(yuǎn)程服務(wù)器的主機(jī)名或IP地址。
另外,確保在遠(yuǎn)程服務(wù)器上的~/.ssh/authorized_keys文件具有適當(dāng)?shù)臋?quán)限(通常為600)。
總結(jié)
這些僅為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu下使用python3中的venv創(chuàng)建虛擬環(huán)境
這篇文章主要介紹了Ubuntu下使用python3中的venv創(chuàng)建虛擬環(huán)境,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
使用VSCode和SSH進(jìn)行遠(yuǎn)程開發(fā)
這篇文章主要介紹了使用VSCode和SSH進(jìn)行遠(yuǎn)程開發(fā),文中通過圖文以及示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Ubuntu重啟后進(jìn)入initramfs導(dǎo)致無法開機(jī)的解決過程
這篇文章主要介紹了Ubuntu重啟后進(jìn)入initramfs導(dǎo)致無法開機(jī)的解決過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2026-05-05
一文整理Linux最常用命令大全(附詳細(xì)實(shí)例)
本文總結(jié)了Linux系統(tǒng)中最常用的文件與目錄操作命令,適合初學(xué)者快速上手,主要內(nèi)容包括基礎(chǔ)概念,核心命令,文本處理和實(shí)用技巧,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解下2026-06-06
Linux下二進(jìn)制編譯安裝MySql centos7的教程
這篇文章主要介紹了Linux下二進(jìn)制編譯安裝MySql centos7的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
MacOS實(shí)現(xiàn)連接Linux NFS服務(wù)器過程
本文詳細(xì)介紹了如何在Ubuntu服務(wù)器上設(shè)置NFS共享,并提供Mac客戶端連接NFS服務(wù)的步驟,同時(shí),還討論了常見問題排查方法和insecure參數(shù)的作用,幫助用戶更好地理解和配置NFS服務(wù)2025-10-10
CentOS7系統(tǒng)下部署MySQL 5.7.34服務(wù)全過程
這篇文章主要為大家詳細(xì)介紹了如何通過普通用戶 test 在 CentOS 7 系統(tǒng)下部署 MySQL 5.7.34,適用于中小型服務(wù)部署、開發(fā)測試環(huán)境以及基于裸機(jī)的數(shù)據(jù)庫初始化場景2025-07-07

