SSH(安全协议外壳)是Secure Shell的缩写,不同于telnet、ftp等明文传输。SSH是Server/Client类型工具。
从客户端来看,SSH提供两种级别的安全验证:基于口令的和基于密钥的安全验证,后者更安全,因为中间人攻击拿不到私钥。scp是secure copy的简写,可以实现远程加密复制文件。
问题:ssh安全吗?为什么需要加代理呢?syncthing
一、不同平台下的SSH工具
xshell是哪个平台的,有什么优点?不是开源免费的,不清真,不浪费时间熟悉了!
1、Windows:
Windows10已经内置ssh,旧版本Windows可以安装putty工具实现ssh client功能。如果安装了git,其内置的git bash有ssh。开启Windows 10中的ssh:
应用和功能->管理可选功能
添加功能:open ssh client以及open ssh server #就可以在命令行下使用ssh命令了(需要重启)
Windows设置:更新和安全下,针对开发人员,选中开发人员模式。
查看计算机管理/服务,确保如下服务启动:
SSH Server Broker #svchost启动的,是Windows 10 ssh server
SSH Server Proxy #svchost启动的,是Windows 10 ssh server
ssh-agent #windows/system32/openssh下启动的,是Windows 10内置的openssh客户端
sshd #windows/system32/openssh下启动的,是Windows 10内置的openssh客户端,无法启动,返回1067错误,为什么?
由于我是通过微软信箱账户登录的,改用本地账户登录。
通过另一台Linux计算机ssh登录:ssh username@IP地址。可顺利登录,键入ls以及pwd命令,竟然不认,必须使用Windows下的DOS命令,估计power shell命令也会支持地很好吧。
Windows 10加入OpenSSH客户端:HOME/.ssh目录下,放配置文件
Windows 10 原生 SSH 功能探索
How-to enable, login to, or disable Microsoft SSH Server in Windows 10
2、CentOS:
3、开启路由器R7000梅林固件中的ssh:
在系统管理、系统设置中,把“SSH Daemon”、“Enable SSH”设置为“LAN Only”
ip addr show #查看路由器的IP信息
linux命令的参数都是啥意思呢:
mount sync exec halt
4、树莓派
a、我用树莓派做服务器,都是不用图形界面的,树莓派如何缺省开启ssh
从2016年11月起,缺省ssh是关闭的,需要在windows分区
boot
根目录下写入文件名为“ssh”的空文件,注意不要有扩展名。
b、树莓派忘记密码,无法ssh怎么办
How To Reset A Forgotten Raspberry Pi Password
1、关闭树莓派,把tf卡插入读卡器,在windows下用文本编辑器打开“cmdline.txt”文件,在行尾加入:“init=/bin/sh” #注意,cmdline.txt内容不能换行,只有一行文字
2、把tf卡插回树莓派开机,键入如下命令:
mount -rw -o remount /
passwd pi #按照提示输入新密码
sync
exec /sbin/init
sudo halt #关闭树莓派
3、在windows下,再次打开tf卡,将 “cmdline.txt”文件行尾的 “init=/bin/sh” 删除掉。
4、再次启动树莓派,就可以用新密码登录树莓派系统了。
二、基本操作
1、更改ssh缺省端口22到1107:
vi /etc/ssh/sshd_config #增加1107端口
service ssh restart #/bin/systemctl restart sshd.service
firewall-cmd –zone=public –add-port=1107/tcp –permanent
firewall-cmd –zone=public –add-port=1107/udb –permannet
firewall-cmd –reload
exit
ssh -p 1107 root@zhangqihui.cc
ssh -p 22 root@zhangqihui.cc
使用手机网络,通过termux测试,修改或增加ssh端口是成功的,但是在公司台式机上安装git,通过git bash总是在ssh远程主机返回“ssh_exchange_identification:read:software caused connection abort” 是不是公司网络不但封锁了22端口,还封锁了端口包含1107在内的其他所有端口?
2、基于密钥的安全验证:
三、端口转发
VPS:
firewall-cmd –zone=public –add-port=9000/tcp #临时测试,所以不加–permanent参数
firewall-cmd –reload
公司网络,本地,通过Git Bash:
ssh root@zhangqihui.cc #返回 “ssh_exchange_identification:read:software caused connection abort”ssh -Nf -R 104.238.148.73:9000:127.0.0.1:8000 104.238.148.73 #返回的错误同上,还有用127.0.0.1 合适吗?
家庭网络,本地,通过Git Bash:
ssh -Nf -R 104.238.148.73:9000:192.168.1.165:8000 root@104.238.148.73 #ssh -Nf -R 104.238.148.73:9000:192.168.1.165:8954 root@104.238.148.73 #Warning: remote port forwarding failed for listen port 9000
firewall-cmd –zone=public –add-port=9964/tcp
firewall-cmd –reload
ssh -Nf -R 104.238.148.73:9964:192.168.1.165:8964 root@104.238.148.73 #外网还是打不开笔记本上的网站!为什么?
netstat -np #查看是否已经建立通道,在本地还是在vps上执行?
netstat -nptl | grep 12230 #查询12230端口是否被监听
SSH端口转发 #很好的文章!
实战SSH端口转发
巧用netsh命令实现端口转发(端口映射)
玩转SSH端口转发
使用ssh端口转发来做内网穿透
用 SSH 命令打洞
四、Android下有哪些好用的ssh应用
1、Termux
2、Termius
3、JuiceSSH
4、Mobile SSH
高效使用 SSH 的 16 个技巧