哈喽大家好!近在折腾服务器,搞得我头都大了,不过还好找到了些好用的工具,不然我估计得秃头。今天就来跟大家唠唠“shell ssh”这个事儿,其实说白了就是怎么方便地用命令行连接服务器,省去那些繁琐的步骤,毕竟咱是游戏玩家,时间宝贵,能偷懒就偷懒嘛!
我之前也是个“小白”,每次登录服务器都要敲 ssh username@ipaddress,然后再输入密码,麻烦死了!而且我手速不快,经常输错,简直是折磨!后来我发现,这其实有很多技巧可以简化操作。
得有个好用的终端模拟器。我个人比较喜欢FinalShell,因为它集成了很多功能,不只是ssh客户端,还有文件传输、远程管理等等,简直不要太方便!下载安装也简单,官网直接下个安装包,点点点就搞定了,比玩游戏还简单。对了,FinalShell好像还有个云端同步功能,这个我没怎么用,感觉对我的需求来说有点多余,不过喜欢折腾的同学可以试试。
工具 | 优点 | 缺点 |
---|---|---|
FinalShell | 功能强大,一体化,方便快捷 | 占用资源略多,部分功能对我来说用不上 |
PuTTY | 轻量级,简单易用 | 功能相对较少 |
Xshell | 功能丰富,界面美观 | 收费软件 |
除了FinalShell,PuTTY和Xshell也是不错的选择,PuTTY比较轻量,适合资源不太充裕的电脑;Xshell功能也很丰富,就是个收费软件,有点小贵。大家可以根据自己的需要选择。
说回ssh,除了用图形界面工具,我们还可以直接用命令行。基本的用法就是 ssh username@ipaddress,然后输入密码。但这样也太low了,每次都要输入密码,烦不烦!所以我们要学会免密登录!
免密登录的关键就是SSH密钥对。生成密钥对的方法也很简单,在Linux系统下,用 ssh-keygen 命令就可以了。它会提示你输入密码,但其实你可以直接回车跳过,这样就实现了免密登录(当然,安全性会略低一点,建议在比较安全的网络环境下使用)。之后,把生成的公钥复制到服务器的authorized_keys文件中,就可以了!从此以后,再也不用输入密码了,爽!
当然,这只是基础操作。如果要更进一步,可以写Shell脚本。Shell脚本是什么呢?简单来说,就是把一系列命令写在一个文件中,然后一次性执行。这样就可以自动化一些操作,比如批量登录多台服务器、批量执行命令等等。
举个栗子,我想在多台服务器上执行一个命令,比如更新软件包。以前我要一台一台地登录,然后执行命令,费时费力。现在,我可以用Shell脚本一次性搞定!
我写了个简单的脚本:
bash
!/bin/bash
servers=("server1" "server2" "server3")
for server in "${servers[@]}"; do
ssh $server "apt update && apt upgrade -y"
done
这个脚本会依次连接到 server1、server2 和 server3 这三台服务器,然后执行 apt update && apt upgrade -y 命令。是不是很方便?当然,你需要提前配置好免密登录,不然脚本会提示你输入密码。
再高级一点,可以用expect脚本。expect脚本可以处理SSH登录过程中的交互,比如自动输入密码,这样即使没有免密登录,也可以实现自动化操作。但是expect脚本相对复杂一些,我个人觉得没必要,毕竟免密登录已经很方便了。
当然,在使用ssh的过程中,也需要注意一些安全比如,不要在公共网络上使用免密登录,尽量使用强密码,定期更换密钥等等。安全嘛!
好了,关于“shell ssh”就先跟大家唠到这儿。其实,这只是个入门,还有很多高级技巧可以学习,比如使用SCP传输文件、使用rsync同步文件等等。不过,对我来说,能方便地登录服务器,自动执行一些命令就足够了。毕竟,咱是来玩游戏的,不是来当运维工程师的!
我想问问大家,你们在使用ssh时有什么好用的技巧或工具吗?欢迎大家分享!