Windows通过winscp登陆Ubuntu18.04
windows下通过winscp, putty(ssh) 等连接ubuntu 需安装ssh服务。其实最方便的还是winscp,可以很轻松地在两台windows之间或windows与ubuntu之间互联。无论服务机是windows操作系统还是Ubuntu操作系统,流程都差不多,主要就是要安装Openssh服务模块。
如果要实现ubuntu18.04上登陆到windows上怎么办呢?
这时一般还是在windows上先安装openssh-server,然后在ubuntu上安装filezilla,命令很简单:
u@ubuntu:~$ sudo apt-get install filezilla
下面以最常用的,通过windows登陆到Ubuntu18.04为例说明。
(1)检查是否已经安装了ssh服务模块
u@ubuntu:~$ ssh apt-get update
u@ubuntu:~$ ssh localhost ssh: connect to host localhost port 22: Connection refused
如果出现如上所示的输出,表示没有还没有安装,可以通过apt安装,命令如下:
u@ubuntu:~$ sudo apt-get install openssh-server
特别说明:
在ubuntu18.04上验证,到这一步,找到本机的IP,就可以通过winscp正常登陆了;SSH(我用的Putty)登陆也没有问题;后面这些步骤仅供参考。
(2)启动ssh服务
有的说安装完成以后,需要先启动服务。我刻意试了一下,在Ubuntu18.04中,这一步不是必须的。貌似安装完后服务会自动启动。不过为了完整性,我还是列一下供大家参考。
参考地址:winscp 连虚拟机(ubuntu12.04 桌面版)_JK0803_wantao的专栏-CSDN博客
hgz001@ubuntu:~$ sudo /etc/init.d/ssh start
注:启动时可能会有如下提示:在启用 ssh 服务时,有时会看到如下提示:
root@bt:~# /etc/init.d/ssh start
* Starting OpenBSD Secure Shell server sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
有两个提示 Could not load host key: /etc/ssh/ssh_host_rsa_key 和 Could not load host key: /etc/ssh/ssh_host_dsa_key ,此时如果从客户端连接到服务器时是不会成功的。其原因是在 SSH 连接协议中需要有 RSA 或 DSA 密钥的鉴权。 因此,我们可以在服务器端使用 ssh-keygen 程序来生成一对公钥/私钥对
运行下面命令:
root@bt:/etc/ssh# ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): #直接回车即可
Enter same passphrase again:
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
3b:a4:b8:df:a9:15:d1:62:df:d5:d1:41:50:59:4a:96 root@bt
The key's randomart image is:
+--[ RSA 2048]----+
| .***|
| . oE+o|
| + . o .|
| . + . . |
| S . . |
| . o o |
| . . + |
| . o o |
| ..o.o |
+-----------------+
上面 ssh-keygen 命令中,-t 选项表示生成的密钥所使用的加密类型,这里选择的是 RSA ;-b 选项表示 bit,后接一个整数,表示加密的位数,该数值越大表示加密的强度越高;-f 选项后接要生成的密钥文件名。根据 /etc/ssh 目录下的 sshd_config 配置文件,RSA 密钥默认识别文件名为 ssh_host_rsa_key 。
命令执行成功后,在 /etc/ssh 下会看到有两个文件生成:ssh_host_rsa_key 和 ssh_host_rsa_key.pub ,前者是私钥,后者是公钥。这样,当再次用 putty 连接时,首先会提示服务器端的加密指纹已经被修改,如果信任则点 yes 继续,否则断开,这里当然是选择信任 yes 。此后,客户端将用公钥对数据进行加密后发往服务器,而服务器收到数据后则用私钥进行解密。
启动后,可以通过如下命令查看服务是否正确启动
hgz001@ubuntu:~$ ps -e|grep ssh
结果显示为:
1589 ? 00:00:00 ssh-agent
2749 ? 00:00:00 sshd
2843 pts/0 00:00:00 ssh
2844 ? 00:00:00 sshd
2911 ? 00:00:00 sshd
2949 pts/1 00:00:00 ssh
2950 ? 00:00:00 sshd
3015 ? 00:00:00 sshd
3272 pts/2 00:00:00 ssh
3273 ? 00:00:00 sshd
3340 ? 00:00:00 sshd
3838 ? 00:00:00 sshd
3905 ? 00:00:00 sshd
表明ssh服务已启动了.
(3)查看ip地址
在ubuntu操作系统终端,查询本机的ip地址
u@ubuntu:~$ ifconfig
如果显示找不到ifconfig命令,就需要安装一下网络工具,
u@ubuntu:~$ sudo apt-get install net-tools
然后就可以通过ifconfig找到你的网址了。
例如我的输出是
u@ubuntu:~$ ifconfig
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.58 netmask 255.255.255.0 broadcast 192.168.3.255
ether 44:8a:5b:9a:45:44 txqueuelen 1000 (以太网)
RX packets 59981 bytes 78007850 (78.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 26745 bytes 4804182 (4.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 17
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (本地环回)
RX packets 1070 bytes 123736 (123.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1070 bytes 123736 (123.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1350
inet 10.70.0.6 netmask 255.255.255.255 destination 10.70.0.5
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500
(4)windows中启动winscp连接到ubuntu18.04
主机名:输入ubuntu的ip地址
端口号:输入22
然后输入ubuntu上的用户名和密码,就可以登陆了。
题外话:如果要添加windows SSH服务端该如何操作
设置-应用-应用和功能-管理可选功能-添加功能
安装OpenSSH服务器和OpenSSH客户端,提示需要重启完成安装,重启电脑
通过services.msc,找到openssh server,右键点击启动,就可以正常运行了。注意:windows为了安全,不允许通过cmd命令窗口启动c:\windows\system32\sshd.exe服务。
然后就可以启动ssh服务了,给个参考链接,
win10 开启ssh服务,远程vim_小英雄Dui的博客-CSDN博客_windows开启ssh
-------- 本文结束 --------