sudo service sshsudo nano /etc/ssh/sshd_config修改(参考)Port 2222#Windows的22端口已经被占用了, 最新版本用不着, 但是要加防火墙入站规则 AllowUsers yourusername#允许登陆的用户名, 就是WSL的用户名, 不写就不指定, 最新版本用不着 PermitRootLogin no#最新版本用不着 UsePrivilegeSeparation no#这一句话需要改一下, 看看能否避免出现bash->ssh->bash出现错误提示的情况(据说是因为无法获取权限).最新版本用不着 PasswordAuthentication yes#最新版本也用不着- Windows防火墙设置允许2222端口, 或者用提权的cmd命令
netsh advfirewall firewall add rule name="SSHServer" dir=in action=allow localport=2222 protocol=tcp - 如果找不到RSA key, 要在bash中
sudo ssh-keygen -A sudo service ssh --full-restart- ssh密钥添加
alias:nano ~/.bash_aliases,alias command='complicated command'
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub username@$ip - 权限要求
$ chmod go-w $HOME $HOME/.ssh#要求这两个文件夹group和other不能有写权限 $ chmod 600 $HOME/.ssh/authorized_keys $ chown `whoami` $HOME/.ssh/authorized_keys - 当设置好了id_rsa之后, 会发现打开命令行输入ssh登陆不需要密码, 但是双击sh文件的方式仍然需要密码
通过ssh -v模式可以看出, sh文件查找id_rsa文件不是在~/.ssh路径下, 而是%HOMEPATH%\.ssh中, 所以把文件复制过来就可以不用输入密码登陆ssh了. - 输入
~.可以退出远程服务器. - 遇到
REMOTE HOST IDENTIFICATION HAS CHANGED!提示, 说明服务器端的.pub文件更改了.
相关文件在/etc/ssh(.pub)或者~/.ssh(known_hosts)文件夹中(参考), 替换的时候注意权限
对于Windows自带的OpenSSH, 应用程序(ssh.exe)在%windir%\System32\OpenSSH; sshd_config和.pub在%ProgramData%\ssh; known_hosts在%USERPROFILE%\.ssh.
隧道
- 貌似ssh直接就可以, 不需要从WSL里面弄…
- ssh -t brainor@隧道电脑 -p 2222 ssh ouwk@服务器
- ref
ssh username@目标机器IP -p 22 -o ProxyCommand='ssh -p 22 username@跳板机IP -W %h:%p'
本文详细介绍如何在Windows Subsystem for Linux (WSL)中配置并使用SSH服务,包括端口修改、用户权限设定、密钥生成与添加等步骤,并解决常见问题如权限错误和双击.sh文件仍需密码的问题。
4587

被折叠的 条评论
为什么被折叠?



