第九章-SSH
一般来说我们连接远程主机都是使用 SSH,比如在外面用手机访问家里的树莓派或是VPS,相比远程桌面
这种服务更灵活,更自由
Secure Shell(缩写为SSH),由IETF的网络工作小组(Network Working Group)所制定;SSH为一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。
因为 Windows 的 CMD
或 powershell
并没有提供 SSH,所以我们需要下载客户端 putty 或 Xshell
安卓推荐 JuiceSSH
如果你有安装 Github 的桌面客户端的话,也可以使用它的 Git Shell
在 Host Name 处填入 raspberrypi
或你的树莓派IP地址
提示输入用户名和密码的话,依次输入
pi
raspberry
之后你就可以远程操作你的树莓派了,当然不在一个网内的话可能需要其它配置
下面我们来配置免密码登陆,这样就不用每次输入密码了
先在树莓派上生成SSH Key:
ssh-keygen -t rsa -C YOURNANME@YOURDEVICE
cd ~
install -d -m 700 ~/.ssh
cat ~/.ssh/id_rsa.pub | ssh USERNAME@IP-ADDRESS 'cat >> .ssh/authorized_keys'
也可在putty或其它软件上生成
然后将生成的公钥 pi.pub 用Samba/SFTP/ZMODEM传送至树莓派
cat pi.pub >> .ssh/authorized_keys
如果你比较在意安全的话,上面设置成功后可以关闭密码登陆了
如果不愿意关闭密码登陆,可以通过开启两步认证来提高安全系数
sudo apt-get install ssh libpam-google-authenticator
配置:
google-authenticator
截屏(WIN: WIN
+ Prtscr
, Android: Power Button
+ Volume -
) 存至安全的地方
所有选项均选yes
下载谷歌Google Authenticator,用手机扫描二维码
sudo nano /etc/pam.d/sshd
添加:
auth required pam_google_authenticator.so
然后
sudo nano /etc/ssh/sshd_config
找到 ChallengeResponseAuthentication
把 no 改成 yes
systemctl restart sshd.serviced
测试:
ssh pi@raspberrypi
经常通过 SSH访问树莓派的话,你可能会发现有些地方不方便,比如正在进行的任务因为网络不稳定突然中断而前功尽弃,这时推荐你用
screen
或tmux
安装:
sudo apt-get install screen
运行:
screen bash
Detach:
CTRL
+A
release,then pressD
列出当前所有screen:
screen -list
重新连接:
screen -r
结束:
CTRL
+D
重新连接attached的session:
screen -D -r