本地 SSH 连接教程
目次
Secure Shell(安全外壳协议,简称 SSH )是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH 通过在网络中创建安全隧道来实现 SSH 客户端与服务器之间的连接。SSH 最常见的用途是远程登录系统,人们通常利用 SSH 来传输命令行界面和远程执行命令。
本地电脑直接操作就可以了,为什么我还要用 SSH 连接呢?因为这样很酷我懒得从椅子上起来走到另一台电脑操作。本文把被连接的电脑称为服务端,另一台为客户端。开始操作前请确保两台电脑处于同一个网络。
安装 OpenSSH #
在两台电脑安装 OpenSSH
1
sudo pacman -Syu openssh
在服务端启用 SSH 服务
1 2 3 4 5 6 7 8 9
# 启用 sshd.service sudo systemctl start sshd.service # 开机启动 sudo systemctl enable sshd.service # 关闭开机启动 # sudo systemctl disable sshd.service # 关闭 sshd.service # sudo systemctl stop sshd.service
查看状态
1 2 3 4
❯ systemctl status sshd.service ● sshd.service - OpenSSH Daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor preset: disabled) Active: active (running)
显示 Active: active 就说明成功了
查看服务端本地 IP 地址
1 2
ip route get 1.2.3.4 | awk '{print $7}' # 192.168.3.100
用
ip addr
查看也行客户端连接服务端
1
ssh [email protected]
使用 SSH 密钥登陆 #
用 SSH 密钥登陆就可以不输入密码登陆了。
在客户端生成 SSH 密钥
1 2
ssh-keygen -t ed25519 -C "your computer model" # 一直按 Enter 就行
查看并复制 SSH 公钥
1 2
❯ cat ~/.ssh/id_ed25519.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHY84a2KfbwfkkKyoSvQk+thsKITpmdFzNbYoCs0SlkU magicbook14
连接服务端
1
ssh [email protected]
导入 SSH 公钥
1 2 3
mkdir ~/.ssh touch ~/.ssh/authorized_keys echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHY84a2KfbwfkkKyoSvQk+thsKITpmdFzNbYoCs0SlkU magicbook14' >> ~/.ssh/authorized_keys
禁止密码登陆 #
禁用密码登陆后别人就不能暴力破解密码了,更加安全。接下来使用服务端操作,用客户端 SSH 连接操作也行。
|
|
|
|
在里面加入:
|
|
|
|
用 UFW 防火墙限制 IP #
使用服务端操作,配置并启用 UFW 后只允许特定 IP 访问,例如 192.168.3.177。
|
|
查看 SSH 连接 #
|
|
禁用 SSH 服务 #
|
|
禁用服务不会终止已有 SSH 连接,要执行以下命令终止所有连接。
|
|
终止 SSH 连接 #
终止 1 个 SSH 连接 #
|
|
终止所有连接 #
|
|
参考资料 #
- 11.10 - How can I setup SSH so that it is restricted to my local network? - Ask Ubuntu
- networking - Connect two computers with SSH in a home LAN - Ask Ubuntu
- How to kill SSH user sessions - Grepitout
- How to Kill Inactive or Idle SSH sessions in Linux | 2DayGeek
延伸阅读 #
标签:
giscus 评论。如果评论未加载,giscus 可能被你的互联网服务提供商屏蔽。
Disqus 评论。如果评论未加载,Disqus 可能被你的互联网服务提供商屏蔽。