ssh能够连接而sftp不能连接的解决方法 无标题文章
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh能够连接而sftp不能连接的解决方法 无标题文章相关的知识,希望对你有一定的参考价值。
参考技术A 有个同事报错说139.196.14 . 的sftp不能登录,
sudo /etc/init.d/sshd status 发现sshd是running的,但是登录失败,ssh到这台机器是可以的,
下面找一下原因:
可以看出是没有sftp-server的目录。
我们找一下sftp-server的路径地址
sudo locate sftp-server /usr/libexec/openssh/sftp-server /usr/share/man/man8/sftp-server.8.gz
然后打开配置:
将 Subsystem sftp /usr/lib/openssh/sftp-server
改成 Subsystem sftp /usr/libexec/openssh/sftp-server
然后reload一下sshd
sudo /etc/init.d/sshd reload
Win10命令行实现对Linux(CentOS)的SSH远程操作SFTP传输文件
使用Windows命令行实现对CentOS 8进行SSH、SFTP连接
笔者本地操作系统Win10;
笔者远程系统Linux CentOS 8;
使用win10系统去连接服务器不需要安装其它任何软件。
本文宗旨操作简单化,描述详细化 。
1》打开Windows命令行
方式一:
右键右击Windows图标,选择运行
会弹出如下框,输入cmd
回车或确认后打开windows运行命令行窗口,笔者的字体颜色是绿色,人生在世总要带点绿哈哈哈,大部分童鞋的字体颜色是还是白色的
方式二:
使用快捷键win+R,在弹出的窗口输入cmd
回车或确认后打开windows运行命令行窗口,笔者的字体颜色是绿色,大部分童鞋的字体颜色是还是白色的
2》连接远程操作操作系统
查看对外IP方式:
1.虚拟机: 使用ifconfig命令
2.云服务器:在云服务器控制台上找到服务器的公网IP,笔者是一台最低配阿里云ECS服务器,年费用不超过100软妹币,满足日常学习开发使用,其它高配云服务器享受同等折扣,链接戳我直达
1.SSH连接,操作远程系统
打开windows运行命令行
输入ssh user@host 这里user是你的远程系统账户名,host是你的远程系统对外的IP地址。密码不显示,输入密码时尽量不要使用小键盘。第一次本地进行远程连接Linux是酱紫的:
有了第一次调教之后再次连接是酱紫的:
连接成功之后我们就可以随心所欲的在远程机器上使用命令了,当你复制了一条命令之后,鼠标右键即可粘贴
2.SFTP连接,上传文件到远程系统
笔者先在E:\\upload 目录下存放了三个文件
输入命令sftp user@host建立sftp连接,user是你的Linux账户名,host是你的Linux系统对外的IP地址。注意,密码不会显示,带有小键盘的同学尽量不要用小键盘。输入密码后回车提示
Connected to user@host. 则表示连接成功。第一次连接远程Linux系统是酱紫的:
有了第一次调教之后再次连接是酱紫的:
连接成功后输入命令 lcd 文件所在目录 , 例如我这边的文件目录是E:\\upload
再输入命令 lls 就能看到我们之前放在本地系统 E:\\upload 里的三个文件
好了,现在我们开始本地上传这三个文件,put 加上对应的文件名称
put erlang-23.3.2-1.el7.x86_64.rpm
put rabbitmq_delayed_message_exchange-3.8.0.ez
put rabbitmq-server-3.8.16-1.el7.noarch.rpm
再接着,我们把这三个文件保存到远程系统,get 加上对应的文件名称
get erlang-23.3.2-1.el7.x86_64.rpm
get rabbitmq_delayed_message_exchange-3.8.0.ez
get rabbitmq-server-3.8.16-1.el7.noarch.rpm
我们使用命令ls查看远程系统保存的这三个文件
使用命令pwd知道远程系统里当前文件的保存目录为 /root
最后,我们使用命令 exit 或 快捷键Ctrl+C关闭sftp连接
3》意外情况汇总处理
笔者在对多个远程系统进行操作时出现了少数意外情况;
此处记录笔者在进行上述操作中所出现过的意外情况。
童鞋们出现错误可以参考这里
1. ifconfig命令失效
问题描述
-bash: ifconfig: 未找到命令
或
-bash: ifconfig: command not found
解决方法一:
使用命令ip addr
解决方法二:
yum -y install net-tools 安装相关工具
再次使用ifconfig 诶可以了
2. 虚拟机没有显示IP
问题描述
使用ifconfig 命令没有显示IP地址
systemctl start network 尝试启动网卡出现如下错误
Failed to start network.service: Unit network.service not found.
解决方法
cd /etc/sysconfig/network-scripts 进入网卡脚本目录;
ls 查看网卡配置文件;
这个配置文件的名称,每个人都不一样,我的配置文件叫 ifcfg-ens32
那我们用vi编辑器编辑该文件
vi ifcfg-ens32 将里面内容ONBOOT=no改成ONBOOT=yes
按下 “ i ” 键,进行编辑
ONBOOT=no 改成ONBOOT=yes
好了,按下Esc 键退出编辑模式,再按下 :wq (注意此处冒号为英文冒号)
按下回车,保存并退出
cat ifcfg-ens32 cat 加上自己的配置文件名称,确实已修改完成
reboot重启系统,等待重启完成后,登录系统;
ifconfig 再次查看,好了可以拿到这台虚拟机的对外IP了。
之后我们就可以进行相关远程连接操作了。
3.使用SSH、SFTP命令无法连接上远程系统
问题描述
当进行SSH、SFTP命令尝试连接远程系统时出现
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:Nbp6lIw2Q0mtENtthJquzUXPVc2r73pcBDTEwtCPiRI.
Please contact your system administrator.
Add correct host key in C:\\Users\\Murray/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\Murray/.ssh/known_hosts:8
ECDSA host key for 10.1.2.235 has changed and you have requested strict checking.
Host key verification failed.
原因
本地操作系统的目录 C:\\Users\\ 你自己的Windows账号名 \\下;
有个文件夹 .ssh
用来存放ssh的公钥私钥已知主机等信息。
.ssh文件夹下有个文件 known_hosts 存放主机密钥。
用记事本或其它文本编辑工具打开,可以看到我们进行ssh连接远程系统的所有主机密钥。
找到我个人的主机IP为10.1.2.235的密钥
主要有两个原因:
1.文件known_hosts被篡改
2.出问题的这个IP。在此之前是属于另外一个操作系统的,并且进行过SSH连接,保存了主机密钥信息。后来由于重装了操作系统等原因,IP被新系统取而代之
笔者就是第二个原因,先前虚拟机安装了CentOS 7,并且进行过SSH连接;现在安装了CentOS 8,本地系统再次连接就出现了上述问题
解决方法
删除 known_hosts 里对应的IP主机密钥;
或者简单粗暴,删除_known_hosts_ 文件。
以上是关于ssh能够连接而sftp不能连接的解决方法 无标题文章的主要内容,如果未能解决你的问题,请参考以下文章
解决 FileZilla 20秒连接超时问题. (SSH + sftp协议)
Win10命令行实现对Linux(CentOS)的SSH远程操作SFTP传输文件