Linux下sftp登錄失敗的解決方案
Linux下sftp登錄失敗
背景:合作方通過公網(wǎng)入口IP的2266端口訪問我方sftp,我方nginx將2266端口轉(zhuǎn)發(fā)到sftp服務(wù)器的22端口。
合作方突然反饋sftp登錄報(bào)錯(cuò)
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 ~]#
可以看到該賬號(hào)密碼有效期90天,剛過期。
延長該賬號(hào)密碼有效期,可以直接修改/etc/shadow文件,或者chage -M,操作后立即生效,無需修改密碼,直接使用之前的密碼即可登錄。
Linux ssh/sftp/scp免密登錄
Linux上實(shí)現(xiàn)SSH、SFTP和SCP的免密登錄(一般是root用戶),可以按照以下步驟進(jìn)行設(shè)置:
1. 在本地機(jī)器上生成SSH密鑰對(duì)
打開終端并輸入以下命令:
ssh-keygen -t rsa
然后按照提示輸入密鑰的保存位置和密碼(如果需要),或者直接按回車鍵接受默認(rèn)值。
這將生成一個(gè)公鑰(id_rsa.pub)和一個(gè)私鑰(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命令不可用,可以手動(dòng)將公鑰內(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也會(huì)自動(dòng)使用相同的密鑰進(jìn)行免密登錄。
可以使用以下命令進(jìn)行測(cè)試:
sftp user@remote_host
或
scp file user@remote_host:/path/to/destination
這些命令將直接連接到遠(yuǎn)程服務(wù)器,而無需輸入密碼。
請(qǐng)注意:
以上步驟中的user和remote_host應(yīng)替換為自己的用戶名和遠(yuǎn)程服務(wù)器的主機(jī)名或IP地址。
另外,確保在遠(yuǎn)程服務(wù)器上的~/.ssh/authorized_keys文件具有適當(dāng)?shù)臋?quán)限(通常為600)。
總結(jié)
這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用win10內(nèi)置的linux系統(tǒng)啟動(dòng)spring-boot項(xiàng)目
這篇文章主要介紹了如何使用​win10內(nèi)置的linux系統(tǒng)啟動(dòng)spring-boot項(xiàng)目,需要的朋友可以參考下2020-07-07linux系統(tǒng)下定時(shí)執(zhí)行php腳本的方法
網(wǎng)站運(yùn)營過程中,經(jīng)常會(huì)遇到需要定時(shí)執(zhí)行php腳本的情況,下面這篇文章主要介紹了linux系統(tǒng)下定時(shí)執(zhí)行php腳本的方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01linux查看防火墻是否關(guān)閉的實(shí)例方法
在本篇文章里小編給各位分享的是關(guān)于linux查看防火墻是否關(guān)閉的實(shí)例方法,需要的朋友們可以學(xué)習(xí)下。2020-03-03Linux網(wǎng)絡(luò)設(shè)置之基礎(chǔ)操作命令詳解
大家好,本篇文章主要講的是Linux網(wǎng)絡(luò)設(shè)置之基礎(chǔ)操作命令詳解,感興趣的同學(xué)快來看一看吧,對(duì)你有用的話記得收藏起來,方便下次瀏覽2021-11-11用DNSPod和Squid打造自己的CDN (五) 安裝Squid的前期準(zhǔn)備
從本章開始,大家將會(huì)學(xué)到如何在Linux下面安裝、編譯程序,還會(huì)學(xué)到程序編譯的優(yōu)化方法,最后會(huì)通過源代碼編譯的方式把Squid安裝上2013-04-04CentOS下命令行實(shí)現(xiàn)普通用戶和root用戶切換的實(shí)例
今天小編就為大家分享一篇CentOS下命令行實(shí)現(xiàn)普通用戶和root用戶切換的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06