Win10命令行实现对Linux(CentOS)的SSH远程操作SFTP传输文件

Posted MurrayLaw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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_ 文件。

以上是关于Win10命令行实现对Linux(CentOS)的SSH远程操作SFTP传输文件的主要内容,如果未能解决你的问题,请参考以下文章

Win10命令行实现对Linux(CentOS)的SSH远程操作SFTP传输文件

使用Windows命令行实现对远程Liunx(CentOS 8)系统进行SSHSFTP连接

Win10 Ubuntu 20.04.4 WSL2命令行安装wireshark

LINUX操作系统VIM的安装和配置

LINUX操作系统VIM的安装和配置

Win10 Hyper-v 中安装 CentOS 搭建开发环境