对,Linux系统管理员,还有开发者来讲,SSH也称作安全外壳协议,是日常工作当中不可缺少的东西,是远程管理以及文件传输工具,它借助加密通道来保障通信安全,然而从登录服务器一直到自动化运维,其命令组合能够应对各种各样复杂场景。掌握SSH核心命令以及它的变体,能够极大提升工作效率以及系统安全。

如何在Linux上安装SSH服务

在多数Linux发行版当中,OpenSSH属于SSH协议相对最为流行的那种实现linux格式化硬盘,针对于Debian/Ubuntu系统而言,你可以运用 sudo apt update && sudo apt install openssh-server 这个命令去安装服务器端,在安装结束之后,系统会自动去启动SSH服务并且将其设置成开机自启 。

linux命令大全chm版_linux命令行大全怎么样_linux命令大全 ssh

在那种基于RPM的像是RHEL、CentOS、Fedora等系统方面,与之对应的安装命令是,sudo yum install openssh-server ,还有 sudo dnf install openssh-server 。达成安装之后,得手动去开启服务linux命令大全 ssh,也就是去执行 sudo systemctl start sshd ,而且还需设置为自启,即执行 sudo systemctl enable sshd 。于完成安装了之后,建议马上就对服务状态开展检查,其相应的命令是 sudo systemctl status sshd

如何用SSH命令远程连接服务器

最最最最基础的连接命令得讲 ssh username@remote_host,就好比 ssh alice@192.168.1.100 这样咯这时系统会提示你输入对应那个用户的密码,要是远程服务器用的不是默认的22端口,比如说2222端口,那就得借助 -p 参数,也就是 ssh -p 2222 username@hostname

linux命令大全chm版_linux命令行大全怎么样_linux命令大全 ssh

鉴于要拥有安全性以及便利性状况着眼,倡导运用密钥对去实施免密登录行为。首先,在本地生成密钥对这项事物之上,其对应的指令是:ssh-keygen -t rsa -b 4096。紧接着,将公钥上传到服务器那里,指令为:ssh-copy-id username@remote_host。当达成此项操作之后,后续再登录就不用再次输入密码了。

如何用SSH传输文件到远程服务器

那个被称作SCP(安全复制)的东西,是按照SSH的文件传输命令,在将本地文件 file.txt 传送到远程主机的 /tmp 目录之际,所使用的命令是:scp file.txt username@remote_host:/tmp嵌入式linux培训,要是想要传输一整个目录,那就必须添加上 -r 这个递归参数,也就是:scp -r /local/dir username@host:/remote/path

linux命令大全 ssh_linux命令大全chm版_linux命令行大全怎么样

存在另外一个更具强大功能的工具名为SFTPlinux命令大全 ssh,即SSH文件传输协议,它提供了交互式的文件管理界面,只需输入sftp username@host便可实现登录,在sftp命令行处,能够运用put来进行文件上传,借助get以实现文件下载,通过ls来查看远程目录,利用lls去查看本地目录,其操作更为直观且具备灵活性。

如何配置SSH让连接更安全

先得采取那份安全方面的举措,也就是禁止root用户直接去做登录这个行为,接着要去往服务器里那个/etc/ssh/sshd_config文件那里进行编辑操作,之后要在文件里找到PermitRootLogin这一行内容,再把它改成PermitRootLogin no,随着这一步骤完成后,要重启SSH服务,执行sudo systemctl restart sshd这个命令 。

能起到减少自动化攻击作用的是对默认端口进行修改,在同一个配置文件当中,需要找到 #Port 22,将注释去除并把端口更改为一个大于1024的端口,比如像 Port 58222这种情况。必须要确保防火墙已经把新端口开放出去。此外,能够把 PasswordAuthentication 设置为 no以此来强制使用密钥认证 。

linux命令大全 ssh_linux命令行大全怎么样_linux命令大全chm版

如何用SSH隧道进行端口转发

某端口在远程服务器那里,能够借助本地端口转发映射到本地机器的端口那儿,举例来说,要是想要访问远程内网数据库(3306),那么可以执行这样的操作:ssh -L 3306:localhost:3306 user@jump_host 。随后,本地连接 localhost:3306 这个行为就相当于连接了经过跳板机以后的数据库 。

若情况呈相反态势为远程端口转发,那么便能够将本地服务朝着外网去进行暴露,假设你于本地开展相关开发工作,所涉及的Web服务,其端口设定为8080,期望让外部凭借公网服务器来予以访问,即可运行ssh -R 8080:localhost:8080 user@public_server,通过这般操作,便可使得对公网服务器8080端口的访问能够穿透至你本地的服务,它常常被应用于临时性测试或者内网穿透 。

SSH常见问题如何排查与解决

linux命令大全 ssh_linux命令大全chm版_linux命令行大全怎么样

一旦连接碰到失败情形,首先得用 -v (即详细)此参数去查看具体错误状况,须如此操作:ssh -v ,接着再跟上 user@以及host。通常来讲,可比较清晰地看到连接是于哪个步骤遭遇被拒绝状况,从而判断是认证出现失败,还是网络并非顺畅,又或是密钥上存在问题。按照所输出的相应信息,能快速地精准找到应对方向。

倘若遭遇“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED”此般警告状况展现出来,其所表征之意便是远程主机密钥指纹与本地记录(~/.ssh/known_hosts)间存有不相符情形。为此种情况出现的缘由或许是服务器开展了重新安装操作,亦或是遭受了中间人攻击情形。先经过确认不存在差错之后,然后借助 ssh-keygen -R hostname 这条命令去清除旧的记录。之后再进行重新连接的举动 。

平常运用 SSH 的时候,你遇到的最为棘手的连接以及配置问题是什么,后来又是如何去解决的,欢迎在评论区分享你的实际操作经验,要是觉得本文有用,也请点赞并分享给更多有需要的朋友。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复