网络基础之SSH

SSH(安全协议外壳)是Secure Shell的缩写,不同于telnet、ftp等明文传输。SSH是Server/Client类型工具。

从客户端来看,SSH提供两种级别的安全验证:基于口令的和基于密钥的安全验证,后者更安全,因为中间人攻击拿不到私钥。scp是secure copy的简写,可以实现远程加密复制文件。

问题:ssh安全吗?为什么需要加代理呢?syncthing

SSH权威指南

一、不同平台下的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、再次启动树莓派,就可以用新密码登录树莓派系统了。

二、基本操作

ssh用法及命令
25个必须记住的SSH命令

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、基于密钥的安全验证:

如何使用不同的私钥发起 SSH 连接?

三、端口转发

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 个技巧