![v2-3dce2c61eb3dadf1f8564e334f56b40b_1440w.jpg?source=172ae18b](http://img-03.proxy.5ce.com/view/image?&type=2&guid=bc8fa2fc-282e-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-3dce2c61eb3dadf1f8564e334f56b40b_1440w.jpg?source=172ae18b)
window 10已经自带SSH了,只需要开启就行,也可以选择自己安装最新的版本;两种方案参考这里(英文Apps & features
对应的就是`应用和功能
)就行,介绍的很详细;操作也十分简单,下面是我自己在安装最新版本的结果:
注:方案一(安装自带的SSH server)其实核心就是下面这句话:
In Settings app, go to Apps > Apps & features > Manage optional features.
方案二:对于老版本的windows的话需要自己下载安装包,进行安装,安装包地址(千万注意不要解压后到C盘的位置,C盘对权限空做比较严格,很容易失败):
https://github.com/PowerShell/Win32-OpenSSH/releases
![v2-a82721249d15e19298cba6b1ef2c61ba_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=bc8fa2fc-282e-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-a82721249d15e19298cba6b1ef2c61ba_b.jpg)
下面说一下我遇到的问题:
登录
上面的步骤走完之后直接 ssh username@server-ip就行(默认端口22),但是由于需要实现自动化,所以要实现免密登录或者程序化登录
免密登录
免密登录就是通过ssh publickey登录,这个方案可以看这里
程序登录1-expect
程序登录主要是通过expect,交互式的登录,这个方法对windows用户不是很友好,这里介绍了expect登录的方法,包含(linux, window和python的方式)
程序登录2-paramiko
这个是目前最推荐的方案,简直完美,还是python大法好,paramiko是python的一个包,安装即用,下面是一个文件传输的例子:
#!/usr/bin/python
#-*-coding:utf-8-*-
import paramiko
ssh = paramiko.SSHClient()
#这行代码的作用是允许连接不在know_hosts文件中的主机。
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("192.168.1.103", 22, "username", "password")
sftp = paramiko.SFTPClient.from_transport(ssh.get_transport())
sftp = ssh.open_sftp()
sftp.put("login.py","D:slogin.py")