`
genius_少宾
  • 浏览: 15416 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

windows open ssh

 
阅读更多
2012-05-25 16:01 633人阅读 评论(0) 收藏 举报
平时常用putty运行ssh client来连虚拟机上的linux,这实在是太方便了,而现在需要远程登陆到的windows里,虽然telnet也行,但太旧也不安全,于从网上找了遍用ssh连windows方法,这需要在windows上安装openssh server,但令人兴奋的是,它竟然自带了ls、mkdir、rm、chmod、chown等命令,实在是好得不得了,具体设置过程和遇到的问题如下:

1.下载OpenSSH

在这里下载



2.安装

安装很简单,就像其它windows下的软件一样,双击即可。安装到大半,会有提示框弹出,说“必须要设置../etc/passwd文件才可以正常运作openssh,详情可以参阅readme.txt或quickstart.txt文件。”不用管它,按确定继续完成安装。安装完后可以看到quickstart.txt文件的内容



3.配置

第一、打开一个ms-dos终端,进入C:\Program Files\OpenSSH\bin目录。(安装完openssh后,发现多了几个在linux中常用的命令,如:ls、mkdir、rm、chmod、chown等,很有亲切感!)

第二、将计算机上的组导入group文件中。这里分两种情况,第一种是本地,第二种是在域中。分别运行-l和-d参数。如果想将两种组都导入,可以先运行-l的参数再运行-d参数的命令。

mkgroup -l >> ..\etc\group        这是加入本地组的命令。
mkgroup -d >> ..\etc\group       这是加入域组的命令。

原文:
Use mkgroup to create a group permissions file. For local groups, use the "-l" switch. For domain groups, use the "-d" switch.
For both domain and local, it is best to run the command twice (remember to use >>, not >). If you use both, make sure to edit the file to remove any duplicate entires.



第三、将计算机的用户与其密码导入passwd文件中。与上面的组一样,也是分本地和域两种情况。如果没有该文件或没有导入用户的信息。作为server的话,将不能被登陆,因为没有用户嘛!

mkpasswd -l >> ..\etc\passwd      这是加入本地用户的命令。
mkpasswd –d >> ..\etc\passwd      这是加入域用户的命令。

原文:
Use mkpasswd to add authorized users into the passwd file. For local users, use the "-l" switch. For domain users, use the "-d" switch.
For both domain and local, it is best to run the command twice (remember to use >>, not >). If you use both, make sure to edit the file to remove any duplicate entires.



通常我们个人电脑都没有用到域组,所以只要运行如下两条命令即可。(记得在OpenSHH/bin目录下进行,也可以自行设置PATH路径)

mkgroup -l >> ..\etc\group       
  mkpasswd -l >> ..\etc\passwd

4.启动OpenSSH server

net start opensshd

关闭命令是:net stop opensshd



5.使用

ssh -p端口用户名@对方主机IP
sftp -p端口用户名@对方主机IP
scp -p端口用户名@对方主机IP:文件路径.
注意:端口默认是22,所以一般不用加-p参数。要更改端口可以在etc/sshd_config中更改。
注意:cmd下改变改变位置的方式是:C:\> D:或E:



6.出现的问题

输入“ssh -p端口用户名@对方主机IP”后出现如下警告提示:

“Could not create directory '/home/Administrator/.ssh”不过依然可以正常登陆,而网上的说法是:这是由于目录/home/Administrator/.ssh不存在造成的,在Windows 2000 and XP中,/home默认是在C:\Documents and Settings;在Windows NT 4.0中,/home默认是在C:\WINNT\Profiles,但我安装完查看了注册表,/home目录的默认值却为

“C:\Documents and Settings\Administrator\「开始」菜单”解决办法如下:



修改注册表,把它改为D:\svn\openssh\home(home目录也可以放在其它地方,随你喜欢)

运行(R)里输入regedit,打开注册表,然后找到如下项,修改之即可。

[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/home]

"native"="D:\\svn\\OpenSSH\\home"

"flags"=dword:0000000a

把"native"改成你自己的/home所在目录,此目录就是默认的登陆目录,比如用户名:Administrator那你进入的目录是/home/Administrator(注:更改目录后要建立对应的目录,并且用户名的目录也要创建)
   修改完了注册表之后,在D:\svn\OpenSSH目录上创建home目录、用户目录以adminstrator为例

cd D:\svn\OpenSSH

md home

md home\Administrator

md home\Administrator\.ssh //注意,此目录只能在命令行下生成,不信你试下

重启服务器,检查配置后运行是否正常,这时你可能会发现,以adminstrator用户登陆,密码总是出错,原因是windows默认adminstrator用户的密码为空,密码为空的用户是无法登陆的,如果想实现无密码自动登陆,那下面的密码钥机制会说到,因此这儿需要为administartor设置密码,假如设了密码还是不行,怎么办?别紧张,先在命令行里输入lusrmgr.msc打开本地用户和组,双击administrator用户,查看常规中的“用户下次登陆时须更改密码(M)”是不是选上了,如果选上了,那就将其取消,选取“密码永不过期”这一项,一切问题就能解决,这样之后还不行的话,那我也帮不了你了,那你就试下将防火墙之类的关掉。
    还要说明一下的是:当用户登陆成功后,会在/home/[用户名]/.ssh目录下行成一个known_hosts文件,里面包存的是公钥的认证内容,但奇怪的是我发现只有administrator/.ssh目录下才有而已,这个我就不知道了。

7.设置基于密钥认证的方式访问,可实现自动登陆。(密钥认证以前实现过,下面的内容我就不具体实践了)

----------------------------------------------------------
1).创建一个Windows用户ssh专用来SSH远程登陆。
可以在本地安全策略中设置禁止ssh本地登陆,不过这样以来单机调试就不方便了。
----------------------------------------------------------
2).生成用户信息。这里是生成了所有用户的信息,当然只指定用户ssh也行
.\bin\mkgroup -l >> .\etc\group
.\bin\mkgroup -d >> .\etc\group
.\bin\mkpasswd -l >> .\etc\passwd
.\bin\mkpasswd -d >> .\etc\passwd
----------------------------------------------------------
3).生成用户ssh的home目录
mkdir home
cd home
mkdir ssh
cd ssh
mkdir .ssh
----------------------------------------------------------
4).修改cygwin环境默认的home目录
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/home]
"native"="C:\\Program Files\\OpenSSH\\home"
"flags"=dword:0000000a
----------------------------------------------------------
5).生成密钥
cd bin
mkdir keys
ssh-keygen -t rsa -b 2048 -f keys\rsa2048 -C "This is passphrase hint" -N "This is passphrase"
mkdir keys\.ssh
cat rsa2048.pub > keys\.ssh\authorized_keys
----------------------------------------------------------
6).将上面生成私转为SSH客户端可使用格式,这里用PuTTY,可用PuTTYgen转为PuTTY用的PPK格式
----------------------------------------------------------
7).将OpenSSH设置为只接受密钥认证。
这里额外开了sftp服务。另外,StrictModes no选项将告诉OpenSSH不检查用户ssh的home目录的权限设置
Protocol 2
Port 22
HostKey /etc/ssh_host_rsa_key
PermitRootLogin no
PermitEmptyPasswords no
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#IgnoreUserKnownHosts yes
PasswordAuthentication no
UsePAM no
UsePrivilegeSeparation no
MaxStartups 10:30:60
Subsystem sftp /usr/sbin/sftp-server
----------------------------------------------------------
8).设置路由器NAT和软件防火墙
NAT设置了映射22号端口的TCP包。
软件防火墙设置允许C:\Program Files\OpenSSH\usr\sbin\sshd.exe侦听TCP port 22。
----------------------------------------------------------
9).基本上差不多了,要启用或停止OpenSSH服务可
net start opensshd
net stop opensshd
在services.msc里启用或停止也可
----------------------------------------------------------
10). PuTTY作中端还不错,就是中文不好办。
要sftp的话,用WinSCP和FileZilla都行。
WinSCP和FileZilla看及进入中文目录名/文件名都没问题,但拷贝等操作报服务端找不到文件错误,
也许和OpenSSH for Windows带的sftp-server.exe版本低了有关吧(3.x的样子)
注意cygwin环境下将Windows各磁盘映射为/cygdrive/

分享到:
评论

相关推荐

    Open SSH Quick Ref

    Concise and intuitive reference doc for Open-ssh. It's helpful for writing sftp client program in Windows environment when using Apache Common framework.

    windows server 2008R2 上安装配置SSH.docx

    那么程序会马上启动,因为FREESSHD还没有配置好,我们需要打开freesshd设置窗口进行配置,因此需要把刚刚启动的服务到进程里去结束掉,否则再点击桌面打开freesshd配置时SSH服务启动不了,因为22端口被占用了。...

    putty telnet、rlogin和ssh客户端 windows平台

     Putty是一个免费的、Windows 32平台下的telnet、rlogin和ssh客户端,但是功能丝毫不逊色于商业的  telnet类工具。用它来远程管理Linux十分好用,其主要优点如下:  ◆ 完全免费;  ◆ 在Windows 9x/NT/2000下...

    Openssh for windows64 v9.2.0.0免费下载

    用于64位windows实现ssh连接的工具,截至2023年4月17日的最新版本v9.2.0.0。 免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载...

    OpenSSH For Windows 绿色便携版 Portable 3.8.1p1

    OpenSSH 3.8.1p1 Portable 绿色版 For Windows --- openssh的绿化版本 初次使用: 在bin目录中运行 mkgroup -l >> ..\etc\group 这是加入本地组的命令。 'mkgroup -d >> ..\etc\group 这是加入域组的命令,可不执行...

    win 下 SSH 控制 Linux 工具 putty.exe

    在打开的对话窗口里,session 页项的 Host Name 输入服务器的 IP 地址,比如 135.251.35.155,Port 输入 22,Protocol 选择 SSH。然后点击“Open”按钮。 三、进行远程登录。 在接下来的对话框里输入用户名和密码...

    qt-creator-opensource-windows-x86-3.3.2.exe

    qt-creator-opensource-windows-x86-3.3.2:可以用ssh openwrt 69.8M (基于qt5.4.1) 以上几个版本从界面上看功能几乎一样,构建运行与4版本小细节上不一样了。

    openssh for windows 7.5p1-1

    2017年6月刚出的open ssh for windows安装版, 版本7.5p1-1。适用于x86和x64的各版本windows

    git-windows-notes

    您不应使用Git for Windows随附的Open SSH客户端。 相反,Windows 10具有自己的与系统集成的Open SSH实现。 为了达成这个: 从Windows服务启动ssh-agent : 在“ Start Menu或Win+R键入Services ,然后键入...

    myeclipse 7.0 集成框架SSH-Framework-Myeclipse7.0.part1.rar

    3.选择myeclipse7.0的 windows->open perspective->myeclipse database explorer 在db browser视图中对myeclipse derby单击右键,选择open connection启动系统默认derby数据库(注:为了测试hibernate,所以需要存取...

    SSH-Framework-Myeclipse7.0.part2.rar

    3.选择myeclipse7.0的 windows->open perspective->myeclipse database explorer 在db browser视图中对myeclipse derby单击右键,选择open connection启动系统默认derby数据库(注:为了测试hibernate,所以需要存取...

    Jetson nano SSH及多种远程桌面配置方法

    SSH连接 笔记本在官网下载putty。运行putty,在session界面输入nano的IP地址,port:22是默认值,不用改。直接点击Open,开启界面。遇到询问界面点击否。 如果出现命令行窗则表示成功进入nano的登录阶段,否则可能是...

    setupssh-7.5p.zip

    open ssh for windows安装版版本7.5p1-1,需要的下载了。 OpenSSH 是安全 Shell (SSH) 工具的开放源代码版本,Linux 及其他非 Windows 系统的管理员使用此类工具跨平台管理远程系统。

    conemu 代替 windows 控制台

    ConEmu does not provide remote access (SSH/Telnet/...) too. ConEmu is advanced console window (local terminal) where you can run any shell or remote access client of your choice. Also you may try ...

    MobaXterm 10.8最新professional版专业版

    windows下支持多标签的终端 通过MobaXterm进行远程终端链接,你可以创建 SSH, Telnet, Rlogin, RDP, VNC, XDMCP, FTP, SFTP or 串口等链接。你的每次链接都会自动保存并且出现在左侧链接窗口中。 对于本机,Moba...

    redis desktop manager 0.98

    Redis Desktop Manager (aka RDM) — is a fast open source Redis database management application for Windows, Linux and MacOS. This tool offers you an easy-to-use GUI to access your Redis DB and perform...

    Redis Desktop Manager v.0.8.8.384 Windows 版本

    Redis Desktop Manager (aka RDM) — is a fast open source Redis database management application for Windows, Linux and MacOS. This tool offers you an easy-to-use GUI to access your Redis DB and ...

    Redis Desktop Manager 0.9.7 Windows安装包

    Redis Desktop Manager (aka RDM) — is a fast open source Redis database management application for Windows, Linux and MacOS. This tool offers you an easy-to-use GUI to access your Redis DB and ...

    putty 免安装 telnet

     Putty是一个免费的、Windows 32平台下的telnet、rlogin和ssh客户端,但是功能丝毫不逊色于商业的  telnet类工具。用它来远程管理Linux十分好用,其主要优点如下:  ◆ 完全免费;  ◆ 在Windows 9x/NT/2000下...

    putty,linux远程登陆工具

     Putty是一个免费的、Windows 32平台下的telnet、rlogin和ssh客户端,但是功能丝毫不逊色于商业的  telnet类工具。用它来远程管理Linux十分好用,其主要优点如下:  ◆ 完全免费;  ◆ 在Windows 9x/NT/2000下...

Global site tag (gtag.js) - Google Analytics