Open felix-cao opened 3 years ago
https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
一般首次使用 svn 时会出现这个问题
解决方案:使用图形界面工具 TortoiseSVN
登录拉去后,再用命令行工具
https://github.com/PowerShell/PSReadLine/issues/483#issuecomment-302081936
powershell.exe
& 'C:\Program Files\Git\bin\sh.exe' --login
powershell.exe -Command
powershell.exe -Command c:/THC/irrsvc/kill.bat
ssh username@host -v
window
下配置文件位置C:\ProgramData\ssh\sshd_config
; linux 下是 /etc/ssh/sshd_config
StrictModes no
PubkeyAuthentication yes
我们可以通过
Linux
客户端登录Linux
远程主机, 这是很常见的,那是因为,Linux
默认安装了OpenSSH
但是不同于
Linux
、MacOS
,Windows
系统没有自带的SSH
客户端,SSH
常常用于Linux
用户的远程登录, 在Windows 10
系统中已经自带了OpenSSH
, 刚好公司的电脑就是Windows 10
系统ps: 曾尝试使用FreeSSHD.exe 来搭建
SSH
服务器, 但其私钥公钥需要借助 putty 中的puttygen
去创建, 创建只能使用putty
命令行工具去连接,走到最后一步的时候,显然这不是我想要的关于 openSSH
一、Windows10 安装 openssh
Windows 10
系统中已经自带了OpenSSH
,只不过没安装启用。点击左下角
WIN
图标, 设置(Settings
) -> 应用(Apps
) -> 应用和功能(Apps & features
) -> 可选功能(Optional features
) -> 添加功能(Add a feature
)安装后,在
Type here to search
中输入service
找到OpenSSH SSH Server
右键点start
在本机尝试一把
ssh zfcao@127.0.0.1
, 是成功的。参考 Install OpenSSH
二、修改shell
默认情况下的
shell
是Windows Command shell (cmd.exe)
程序, 下面设置为Powershell
以管理员的的身份启动
Powershell
, 输入如下命令:Powershell
git-bash
, 这是我喜欢的。Windows
系统中,PowerShell
已逐渐成为主流,我们可以把默认的shell
设置为PowerShell
。其实就是在运行 OpenSSH Server 的 Windows 系统的注册表中添加一个配置项,注册表路径为HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH
,项的名称为DefaultShell
,项的值为C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
参考 OpenSSH Server Configuration for Windows 10 1809 and Windows Server 2019
三、配置文件目录
服务器端的配置文件在
C:\ProgramData\ssh
目录中:C:\ProgramData
是一个隐藏目录, 这是一个坑C:\ProgramData\ssh\sshd_config
是ssh
的配置文件, 在linux
下是/etc/ssh/sshd_config
四、将公钥私钥对存储到家目录.ssh下
ssh-keygen
命令用来生成公钥认证使用的秘钥对,创建的秘钥一般都和ssh
客户端的配置一起保存在用户家目录下的.ssh
目录中(与Linux
系统中类似),authorized_keys
文件中,windows
下的openssh
把登录用户的公钥存储在C:\ProgramData\ssh\administrators_authorized_keys
下面是将其设置为
.ssh/authorized_keys
:以管理员权限打开
PowerShell
,执行命令notepad C:\ProgramData\ssh\sshd_config
注释掉配置文件中的最后两行然后保存
重启
OpenSSH SSH Server
手动的将
Linux
客户端的用户公钥复制到Windows10
远程主机家目录下的~/.ssh/authorized_keys
中至此,
Linux
客户端可以完美通过公钥认证的方式登录到Windows10
远程主机了。接下来就可以做 基于 Jenkins 的 pipeline 实现远程主机通信及发送邮件Reference