OpenSSH-Win64安装及sshfs的挂载使用

由于习惯了Linux下的vim,尽管有git bash也不自在,而软件运行环境又要在Windows下,所以需要将Windows上的代码目录挂载到Linux系统上。

首先git bash里的sshd是假的,要安装sshd,还得微软自己发布的OpenSSH-Win64,正好这个软件也提供了sFTP功能,所以只要这个软件在windows上安装成功,在本地Linux环境上一个命令就可以完成挂载了。

安装过程会遇到这么几个坑:

1. 下载的OpenSSH-Win64.zip解压后,你会发现它并不是一个exe安装文件,而是一堆的工具和脚本,应该将解压目录拷贝到C:\Program Files\下,并将路径添加到环境变量里,使得其中的工具命令在PowerShell中能自动查询到。

2. 在PowerShell中运行目录中的安装脚本install-sshd.ps1时,可能发现脚本不能执行,因为默认PowerShell不允许执行脚本,需要set-ExecutionPolicy,修改为RemoteSigned。

3. 直接前台运行sshd,或者后台启动服务net start sshd,接着需要关闭Windows防火墙,或者是放行22号端口。

4. 还需要修改配置,不像Linux里配置在/etc/ssh/下,它的配置在C:\ProgramData\ssh下,而且ProgramData还是一个隐藏目录。配置中解注释port 22,默认帐户和密码就是Windows的帐号和密码,如果没有密码,就需要修改配置中的PermitEmptyPasswords为yes,这样就能直接免密登录。PubkeyAuthentication和PasswordAuthentication,即公钥认证还是密码认证,按需要设置成yes或no。

5. 如果没有~/.ssh/,也需要执行ssh-keygen生成本地密钥,必要的话可能需要手动创建authorized_keys文件。

6. 至于目录中的FixHostFilePermissions.ps1用来解决文件权限问题,但我未遇到权限问题。

安装好,接着就是本地挂载了。

该sshd中内置了对sFTP的支持,sFTP其实就是走ssh通道的FTP,基于内核对FUSE (Filesystem in Userspace)的支持,桥接各种文件操作,形成可挂载于本地的网络磁盘。

使用就很简单了,安装sshfs工具,然后如下命令就挂载了,这里不需要sudo:

sshfs xxx@192.168.24.134:/C:/Users/xxx/Desktop/ win8/

卸载也很简单:

umount ./win8

也可以将挂载写进/etc/fstab里进行开机自动挂载,不过要求是ssh为免密登录的。

发表于 2019年01月28日 23:36   评论:0   阅读:5581  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo