linux 使用密钥登录windows server 2016
背景:想要使用ssh从linux远程登录到windows server 2016,执行windows上的命令行
实践:
1,在windows server上安装openssh,选择合适的版本,64位系统选择:OpenSSH-Win64.zip
设置成自动启动: Set-Service -Name sshd -StartupType ‘Automatic’
启动 sshd 服务
net start sshd
停止sshd 服务
net stop sshd
2,在windows上创建密钥
到openssh目录中执行:.\ssh-keygen 连续回车直到结束
生成文件到:
3.配置
找到C:\ProgramData\ssh\sshd_config文件,调整配置,加上下面配置
RSAAuthentication yes # 允许rsa
PubkeyAuthentication yes # 允许公钥登录
PermitRootLogin yes # 允许root登录
配置后整体文件如下:
# This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. #Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: #HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key #HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key #HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key #HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key # Ciphers and keying #RekeyLimit default none # Logging #SyslogFacility AUTH #LogLevel INFO # Authentication: #LoginGraceTime 2m RSAAuthentication yes PubkeyAuthentication yes PermitRootLogin yes #PermitRootLogin prohibit-password #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 #PubkeyAuthentication yes # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 # but this is overridden so installations will only check .ssh/authorized_keys AuthorizedKeysFile .ssh/authorized_keys #AuthorizedPrincipalsFile none # For this to work you will also need host keys in %programData%/ssh/ssh_known_hosts #HostbasedAuthentication no # Change to yes if you don't trust ~/.ssh/known_hosts for # HostbasedAuthentication #IgnoreUserKnownHosts no # Don't read the user's ~/.rhosts and ~/.shosts files #IgnoreRhosts yes # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes #PermitEmptyPasswords no # GSSAPI options #GSSAPIAuthentication no #AllowAgentForwarding yes #AllowTcpForwarding yes #GatewayPorts no #PermitTTY yes #PrintMotd yes #PrintLastLog yes #TCPKeepAlive yes #UseLogin no #PermitUserEnvironment no #ClientAliveInterval 0 #ClientAliveCountMax 3 #UseDNS no #PidFile /var/run/sshd.pid #MaxStartups 10:30:100 #PermitTunnel no #ChrootDirectory none #VersionAddendum none # no default banner path #Banner none # override default of no subsystems Subsystem sftp sftp-server.exe # Example of overriding settings on a per-user basis #Match User anoncvs # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server Match Group administrators AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
C:\ProgramData\ssh\如下:
4.配置linux机器端
想要从linux远程登录到windows,所以应该将windows上生成的私钥copy到linux的ssh目录
复制id_rsa内容,切换到root后复制到linux的/home/***/.ssh中创建id_rsa_jmp中
修改权限 chmod 600 id_rsa_jmp
5,测试从linux登录到windows
ssh -i ~/.ssh/id_rsa_jmp **@windows host ip
测试成功!