当前位置: 代码网 > 服务器>服务器>Linux > Linux下sftp登录失败的解决方案

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

2024年06月17日 Linux 我要评论
linux下sftp登录失败背景:合作方通过公网入口ip的2266端口访问我方sftp,我方nginx将2266端口转发到sftp服务器的22端口。合作方突然反馈sftp登录报错couldn'

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)。

总结

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

  • Linux网桥配置br-lan、eth0、eth1、ra0、rai0方式

    Linux网桥配置br-lan、eth0、eth1、ra0、rai0方式

    linux网关模式下将有线lan和无线lan共享网段实现局域网内互联思路其实很简单:就是将虚拟出一个bridge口,将对应的有线lan和无线lan都绑定在这个虚... [阅读全文]
  • Linux之路由转发和SNAT的应用方式

    1.snat的介绍snat又称源地址转换。源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用…

    2024年06月17日 服务器
  • Linux如何开启路由转发功能

    Linux如何开启路由转发功能

    linux开启路由转发功能一、准备需求:两台不同网段的主机通信方案:另外启动一台服务器b,双网卡,一个网卡和服务器a通信,一个网卡和服务器c通信。a和c通信通过... [阅读全文]
  • 详解如何在Linux上添加路由

    详解如何在Linux上添加路由

    在添加路由之前,我们需要先了解一些基本概念。基本概念什么是路由?路由是指确定数据包从源节点到目的节点的路径的过程。这个过程涉及到在网络中的多个节点之间选择最佳路... [阅读全文]
  • linux停止jar包进程方式

    linux停止jar包进程提供两种方式关闭进程:知道端口号;知道jar包名称1.知道端口号,停止进程(1)根据端口号获取进程编号pidnetstat -lnp|grep 端口号比如…

    2024年06月17日 服务器
  • Linux如何运行Jar包命令

    一、后台运行jarnohup java -jar /home/spring_one_demo-0.0.1-snapshot.jar > spring.log 2>&am…

    2024年06月17日 服务器

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com