ssh
1、ssh安装
sudo apt-get update
sudo apt-get install openssh-server #安装SSH-server openssh-client 好像不用装
ps -e |grep ssh #然后确认sshserver是否启动了
sudo /etc/init.d/ssh start #启动SSH-Server
2、ssh端口更改
#ssh-server配置文件位于/ etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是 22,你可以自己定义成其他端口号,如 Port 2222
远程执行指令
远程删除
ssh zzx@192.168.1.123 ‘rm /home/xx/a’ #单引号 远程删除 /home/xx/a文件
或者 ssh zzx@192.168.1.123 ”rm a“ #双引号
3、ssh-keygen 无密码登入
假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;
要达到的目的:
A机器ssh登录B机器无需输入密码;
加密方式选 rsa|dsa均可以,默认dsa
ssh-keygen -t dsa #使用dsa加密
二、具体操作流程
单向登陆的操作过程(能满足上边的目的):
1、登录A机器
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_dsa.pub(或id_dsa,id_rsa.pub)
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 用户名@192.168.20.60 )
zzx@zzx11:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zzx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/zzx/.ssh/id_rsa.
Your public key has been saved in /home/zzx/.ssh/id_rsa.pub.
The key fingerprint is:
aa:18:e8:11:d7:f3:9b:d4:c4:30:35:b4:d8:7d:22:25 zzx@zzx11
The key's randomart image is:
+--[ RSA 2048]----+
| .E . |
| + * |
| + + o . |
| . + . o |
| . . o So |
| .o o.o |
|... .o . |
|. .o .. o |
| .. . o |
+-----------------+
zzx@zzx11:~/.ssh$ scp ./id_rsa.pub zzx@192.168.1.13:/home/zzx/.ssh # 1.13提前mkdir -p .ssh
zzx@192.168.1.13's password:
id_rsa.pub 100% 391 0.4KB/s 00:00
zzx@zzx13:~/.ssh$ cat id_rsa.pub >> ~/.ssh/authorized_keys # 提前mkdir .ssh
以上方法比较复杂 还有一步到位的方法
zzx@zzx11:~ ssh-copy-id -i ~/.ssh/id_rsa.pub zzx@192.168.1.13 # 这个方法可以在1.13上直接生成authorized_keys 自动创建文件夹 自动创建 .ssh/authorized_keys文件 如果之前有就接着》密钥
最后直接登入别忘了用户名 不然就用本机用户名去登入对方电脑
zzx@zzx120:~/.ssh$ ssh-keygen -t rsa
zzx@zzx120:~/.ssh$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.101
zzx@zzx120:~/.ssh$ ssh root@10.0.0.101
[root@localhost .ssh]# ssh-keygen -t rsa
[root@localhost .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub zzx@10.0.0.99
[root@localhost .ssh]# ssh -p2222 zzx@10.0.0.99
增强 SSH 安全性的 7 条技巧
在绝大部分的 Linux 服务器上都使用 OpenSSH 作为 SSH server,所以这篇文章只针对 OpenSSH。其实这些技巧都是很基础的,但如果你能好好使用它们的话,一定程度上确实可以有效提升 SSH 的安全性.
#以下配置项都是在 /etc/ssh/sshd_config 文件中修改。
1. 禁止 root 登录
PermitRootLogin no
当你启用这一选项后,你只能用普通用户登录,然后再用 su 或 sudo 切换到 root 帐户。
2. 仅允许指定用户和组登录
指定用户
AllowUsers ramesh john jason
指定组
AllowGroups sysadmin dba
3. 禁止指定的用户或组登录
指定用户
DenyUsers cvs apache jane
指定组
DenyGroups developers qa
注:Allow 和 Deny 可以组合使用,它们的处理顺序是:DenyUsers, AllowUsers, DenyGroups, AllowGroups
4. 修改 SSH 监听端口
把 SSH 监听端口改为 222
Port 222
5. 修改默认登录时间
当你连接到 SSH 后,默认是提供 2 分钟的时间让你输入帐户和密码来进行登录,你可以修改这个时间为 1 分钟或 30 秒。
LoginGraceTime 1m
6. 限制监听 IP
如果你的服务器上有多个网卡及 IP ,那么你可以限制某些 IP 不监听 SSH,只允许通过某些 IP 来登录。
比如你有四个网卡
eth0 – 192.168.10.200
eth1 – 192.168.10.201
eth2 – 192.168.10.202
eth3 – 192.168.10.203
你只想让用户通过 202, 203 这两个 IP 来登录,那么做以下设定
ListenAddress 192.168.10.200
ListenAddress 192.168.10.202
7. 当用户处于非活动时断线
当用户在 10 分钟内处于非活动状态的话,就自动断线。
ClientAliveInterval 600
ClientAliveCountMax 0
ClientAliveCountMax:默认为 3 ,表示当 SSH 没有任何活动时, SSH Server 会发送三次检查是否在线(checkalive)的消息。
ClientAliveCountMax:默认为 0,表示当过了几秒后,SSH Server 会发送消息要求用户响应(0 的话表示永远不发送),否则就断线
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异