SSH Secure Shell Client实现共享文件以及报错
前言:Windows和Linux系统之间共享文件的方式大致分为三种,一是通过ftp或sftp协议,二是通过http协议,三是通过ssh协议。
前两者一般都需要在远程服务器配置ftp或http服务后才能使用,而ssh协议基本上是所有的linux系统都默认支持的,可用来远程登录。
SSH Secure Shell Client是一款Windows下支持SSH协议的软件,界面操作友好,重点是有专用的文件传输模式。对于需要在Linux和Windows系统间互传文件,但是又不必要配置ftp服务的情景,它是一种不错的选择。
为了实现将window系统下的压缩包传到linux系统上,我费尽心思最终还是用的SSH Secure Shell Client解决。下面就给大家详细的讲解一下如何安装使用以及遇到的问题和解决方法,希望可以帮到你。
下载地址:
链接:https://pan.baidu.com/s/1Inj68cgQYZxQ3m5JNzNCUw
提取码:l648
如果连接失效,请自行百度下载。
一. 傻瓜式安装
下载下来之后就打开,一直按下一步,没什么好说的。
安装完快捷方式之后长这样,有两个:
打开那个蓝白灰色的Client,界面如下:
点击左上角的"Quick Connect"(快速建立远程主机连接),之后输入:
Host Name:你需要接受文件的虚拟机的ip地址;(linux终端输入ifconfig查看ip,inet之后的就是你的虚拟机ip)
User Name:你虚拟机接受文件的用户的用户名;
Port:端口号(默认为22,除非你将配置文件里的端口号改了,改了就输入改之后的)
之后点击"Connect"连接。正常情况下我们会遇到一个里面有蓝色感叹号的框框,点击YES就可以输入密码了,就像这样:
BUT,如果你碰见的是里面是红色感叹号的对话框,就像这样:
或者是这样:
那么很遗憾,骚凹瑞~,出 错 了 !(我最害怕的来了,如果你没有报错就很棒棒,可以略过这一part,进入到下一环节)。出错的也不要害怕,本人已经探好路了,因为昨天我把网上所有的方法都试了一遍,总有一个适合你,手动微笑脸。
二. 解决
如果你出现了第一种情况:那么有以下几种可能
1.没有安装ssh服务
判断方法:虚拟机终端窗口输入ps -e |grep ssh(查看ssh进程)
结果:没有sshd出现,只有agent
解决方法:虚拟机终端窗口输入sudo apt-get install openssh-server安装openssh-server。
验证方法:虚拟机终端窗口输入ssh localhost登录或是输入ps -e |grep ssh查看
2. 没有启动server服务
判断方法:你安装了server,但可能没有启动。虚拟机终端窗口输入 ps -e | grep ssh
结果:没有sshd出现,只有agent
解决方法:虚拟机终端窗口输入sudo /etc/init.d/ssh start或service sshd restart(手动启动)
3.端口被注释
判断方法:虚拟机终端窗口输入sudo vi /etc/ssh/ssh_config
结果:找到Port22查看前面是否有#
解决方法:如果有的话把#去掉(linux的vi编辑器中输i,表示插入模式,删完按esc键,最后输入:wq!强制修改保存并退出)
4.权限问题
判断方法:虚拟机终端窗口输入sudo vi /etc/ssh/sshd_config
结果:找到PermitRootLogin查看前面是否有#或者是值为no
解决方法:如果有的话把#去掉,值改为yes
5.虚拟机防火墙问题
判断方法:虚拟机终端窗口输入service iptables status 或 systemctl status firewalld
解决方法:systemctl disable firewalld永久关闭防火墙(开机禁用)
6. 虚拟机和主机不在同一网段(我就是这个错误)
判断方法:打开主机cmd运行ping 192.168.x.x(你的虚拟机ip),打开虚拟机终端ping 192.168.x.x(你的主机ip)查看两者是否可以实现网络互通
结果:虚拟机可以ping通,出现一堆东西(按ctrl+c停止),主机ping不通,出现请求超时
解决方法:将虚拟机关了,找到”编辑虚拟机设置“把网络适配器的NAT模式改为桥接模式,并勾选上下面的”复制物理网络连接状态“
验证方法:再Ping就能ping通了
8.主机防火墙问题
判断方法:主机ping不上虚拟机
解决方法:进入主机”控制面板“,选择”系统和安全中心“,点进”Windows Defender防火墙“,把两个都关了
9.端口出错
解决方法:虚拟机终端窗口输入sudo vi /etc/ssh/ssh_config,将”Port22"修改为"Port222"之类(任意数字都可以,但是要记住别忘了)
以上基本涵盖了所有出现第一种状况的方法。如果都不行的话可以给我留言,大家一起想想办法。
如果你出现了第二种情况,有这种方法:
解决方法:修改sshd的配置文件 /etc/ssh/sshd_config
1. 输入sudo vim /etc/ssh/sshd_config(打开/etc/ssh文件目录下的文件sshd_config )
2.在文件末尾添加以下信息:
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96 KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org
3.输入sudo /etc/init.d/ssh restart 或service ssh restart(保存重启ssh服务)
验证方法:命令行出现
root@Master:~# sudo vi /etc/ssh/sshd_config root@Master:~# sudo /etc/init.d/ssh restart [ ok ] Restarting ssh (via systemctl): ssh.service.
问题解决完毕之后,继续我们的传输文件~
点击中间上方的黄蓝色图标新建一个文件传输窗口
左侧红框内是本地Windows主机目录,右侧绿框内是远程Linux主机目录
在本地主机目录文件上右键“Upload”,可将本地文件上传至远程主机
同理,在远程主机目录文件右键“Download”,可将远程主机文件下载至本地主机
总结:想把文件从主机传到虚拟机,在左边窗口右击文件选择“update”;想把文件从虚拟机下载到本地,在右边窗口右击文件选择“download”