Linux下sftp登录失败的解决方案

 更新时间:2024年06月04日 16:16:43   作者:Hassang  
这篇文章主要介绍了Linux下sftp登录失败的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Linux下sftp登录失败

背景:合作方通过公网入口IP的2266端口访问我方sftp,我方nginx将2266端口转发到sftp服务器的22端口。

合作方突然反馈sftp登录报错

Couldn't read packet: Connection reset by peer

1. 查看sftp服务器22端口,正常。

2. 联系合作方,确认公网出口IP未发生变化。

3. sftp服务器上查看该sftp用户的ChrootDirectory目录及其上层目录,owner都为root,权限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上实现SSH、SFTP和SCP的免密登录(一般是root用户),可以按照以下步骤进行设置:

1. 在本地机器上生成SSH密钥对

打开终端并输入以下命令:

ssh-keygen -t rsa

然后按照提示输入密钥的保存位置和密码(如果需要),或者直接按回车键接受默认值。

这将生成一个公钥(id_rsa.pub)和一个私钥(id_rsa)。

2. 将公钥复制到远程服务器

使用以下命令将公钥复制到远程服务器上的authorized_keys文件中:

ssh-copy-id user@remote_host

将user替换为在远程服务器上的用户名,remote_host替换为远程服务器的主机名或IP地址。在执行此命令之前,可能需要输入远程服务器的密码。

如果ssh-copy-id命令不可用,可以手动将公钥内容追加到远程服务器的~/.ssh/authorized_keys文件中 (

scp ~/.ssh/id_rsa.pub user@remote_host:~/.ssh/id_rsa.pub  (此次需要输入密码)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

)

3. 验证免密登录

使用以下命令尝试通过SSH连接到远程服务器:

ssh user@remote_host

如果没有设置密钥密码,将直接连接到远程服务器,而无需输入密码。如果设置了密钥密码,则需要提供密钥密码才能连接。

4. 配置SFTP和SCP的免密登录

一旦成功实现了SSH的免密登录,SFTP和SCP也会自动使用相同的密钥进行免密登录。

可以使用以下命令进行测试:

sftp user@remote_host

scp file user@remote_host:/path/to/destination

这些命令将直接连接到远程服务器,而无需输入密码。

请注意:

以上步骤中的user和remote_host应替换为自己的用户名和远程服务器的主机名或IP地址。

另外,确保在远程服务器上的~/.ssh/authorized_keys文件具有适当的权限(通常为600)。

总结

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux之信号的保存方式

    Linux之信号的保存方式

    这篇文章主要介绍了Linux之信号的保存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • ubuntu/deepin制作快捷启动图标的方法

    ubuntu/deepin制作快捷启动图标的方法

    这篇文章主要介绍了ubuntu/deepin制作快捷启动图标的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • linux驱动开发中常用函数copy_from_user open read write详解

    linux驱动开发中常用函数copy_from_user open read write详解

    本文解说了inux驱动开发函数copy_from_user ,open ,read write几个常用函数,现在一起来学习他们的使用过程吧
    2021-08-08
  • Linux下如何对ISO文件编辑的方法示例

    Linux下如何对ISO文件编辑的方法示例

    这篇文章主要给大家介绍了关于在Linux下对ISO文件编辑的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考学习,下面随着小编来一起学习学习吧。
    2017-09-09
  • Linux(Ubuntu 18.04)上安装Anaconda步骤详解

    Linux(Ubuntu 18.04)上安装Anaconda步骤详解

    Anaconda是最受欢迎的python数据科学和机器学习平台,用于大规模数据处理,预测分析和科学计算。这篇文章主要介绍了Linux(Ubuntu 18.04)上安装Anaconda的方法,需要的朋友可以参考下
    2018-11-11
  • linux常用命令小结之yum、源码安装

    linux常用命令小结之yum、源码安装

    这篇文章主要介绍了linux常用命令小结之yum、源码安装的相关资料,需要的朋友可以参考下
    2018-04-04
  • Linux gzip 命令的使用

    Linux gzip 命令的使用

    这篇文章主要介绍了Linux gzip 命令的使用,帮助大家更好的理解和学习Linux系统,感兴趣的朋友可以了解下
    2020-08-08
  • Linux中对lvm逻辑卷分区大小的调整教程(针对xfs与ext4不同文件系统)

    Linux中对lvm逻辑卷分区大小的调整教程(针对xfs与ext4不同文件系统)

    这篇文章主要给大家介绍了关于Linux中对lvm逻辑卷分区大小的调整教程(针对xfs与ext4不同文件系统)的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-10-10
  • linux &、nohup与Systemctl的使用

    linux &、nohup与Systemctl的使用

    这篇文章主要介绍了linux &、nohup与Systemctl的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Linux VIM编辑二进制文件方式

    Linux VIM编辑二进制文件方式

    这篇文章主要介绍了Linux VIM编辑二进制文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论