SSH常用配置
AI-摘要
TLDR GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
SSH常用配置
lololowe1. SSH客户端配置
1.1. 生成SSH密钥对:
ssh-keygen -t ed25519 -b 4096 -C "这是注释" -f ~/.ssh/test/key
-t rsa
: 指定密钥的加密算法为ed25519, 它相比较于rsa有更高的安全性以及更好的性能。-b 4096
:指定密钥的位数, 不指定则使用默认的2048位。-C "这是注释"
:为密钥添加注释。不添加则默认使用当前用户名和主机名组成的邮件地址, 比如 zhangsan@Ubuntu。-f ~/.ssh/test/key
:指定密钥文件的路径和名称, 不指定则会在执行命令后要求输入。
1.2. 配置~/config
文件
- 一个简单的例子: 为Github指定使用的私钥
1 | Host github.com |
不要试图为github.com设置一个别名, 会导致无法推送代码, 并提示权限错误!
- 验证连接:
ssh git@github.com -T
-T
: 禁止分配伪终端, 防止出现”PTY allocation request failed on channel 0”的提示信息。Bad permissions
问题: windows用户需要检查config文件和私钥文件的安全权限不含当前用户以外的用户组; Linux用户需要确保文件权限为600(即其他用户无任何权限)。
- config文件的常用配置:
1 | Host [别名] |
openssh官方文档: https://man.openbsd.org/ssh_config
1.3. 上传本地公钥文件
ssh-copy-id [-i identity_file] [-p port] [user@host]
-i identity_file
: 指定本地公钥文件, 默认使用~/.ssh/id_rsa.pub
。user@host
: 指定远程主机的用户名和主机名。[-p port]
: 指定服务器端口
注意:
[user@host]
后面不得跟上任何参数,比如指定端口,会导致命令错误。
2. SSH服务端配置
2.1 允许root用户登录
Debian系的Linux发行版默认禁止root用户登录, 因此可修改sshd_config文件以允许root用户登录:
1 | echo "PermitRootLogin yes" >> /etc/ssh/sshd_config # 允许root用户登录 |
2.2. 配置内外网使用不同的用户登陆规则
以下配置将允许外网使用xiaoming的密码来登录服务器, 而内网无任何限制。
没有以下需求请勿配置!
1 | # 对于外网中的特定用户,允许密码登录 |
3. 拷贝文件
3.1. SCP
命令语法:
1 | scp [options] source user@host:destination |
常用选项:
-r
: 递归地复制整个目录。-p
: 保留文件的修改时间和权限。-q
: 静默模式。使用这个选项,SCP命令在执行时不会打印任何信息。-v
: 输出详细信息。-P
: 指定 SSH 服务器的端口。
注意:选项必须放在源文件前面,否则会导致命令错误。
实例:
1 | # 复制本地文件到服务器 |
3.2. SFTP
命令语法:
1 | sftp [-P port] [-i identity_file] user@host |
注意:
user@host
后面不能有选项。
常用命令:
ls
: 列出远程目录的内容。lls
: 列出本地目录的内容。cd path
: 切换到远程系统中的其他目录。lcd path
: 切换到本地系统中的其他目录。get file
: 从远程系统下载文件。put file
: 上传文件到远程系统。mkdir directory
: 在远程系统中创建新的目录。rmdir directory
: 删除远程系统中的目录。by
: 结束SFTP会话。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果