学习笔记 Gobi cowboy
ssh配置
#ssh链接
1. 什么是 SSH
SSH(Secure Shell) 是一种加密远程登录和数据传输协议,广泛用于 Linux、Mac 以及 Windows 系统中。
为什么公钥/私钥最安全
-
私钥(private key):存放在本地电脑,绝对不能泄露。
-
公钥(public key):放在远程服务器或服务端(如 GitHub)。
-
登录时,服务器用公钥生成一个挑战(challenge),本地私钥解密应答。
-
优点:
-
无需密码传输,防止被监听。
-
可以设置 passphrase 增加安全性。
-
多服务器可以用不同密钥,便于管理。
-
相比于传统密码登录,公钥认证几乎不可破解,也避免了重复密码风险。
2. SSH 连接 GitHub
生成 SSH 密钥
ssh-keygen -t ed25519 -C "your_email@example.com"
-
默认生成:
-
~/.ssh/id_ed25519 → 私钥
-
~/.ssh/id_ed25519.pub → 公钥
-
添加公钥到 GitHub
-
打开 id_ed25519.pub 文件,复制内容。
-
登录 GitHub → Settings → SSH and GPG keys → New SSH key → 粘贴内容。
-
测试连接:
ssh -T git@github.com
- 成功会显示 GitHub 欢迎信息。
3. SSH 连接服务器
3.1 登录服务器方式
- 将公钥复制到服务器:
ssh-copy-id username@server_ip
-
或者手动把 id_ed25519.pub 内容写入服务器 ~/.ssh/authorized_keys
-
测试登录:
ssh username@server_ip
-
配置 SSH config(多服务器/多密钥):
Host gobi-server
HostName 117.72.67.82
User root
IdentityFile ~/.ssh/id_ed25519
登录时可直接:
ssh gobi-server
3.2 不登录服务器方式
-
如果你不能用密码登录,或者只想上传公钥:
-
将公钥直接写入服务器 ~/.ssh/authorized_keys。
-
设置权限:
-
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
-
适用于:
-
云服务器控制面板上传公钥
-
有 SFTP/文件访问权限但不能直接登录 SSH
-
4. SSH 传输文件
4.1 使用
scp
- 复制本地文件到服务器:
scp localfile.txt username@server_ip:/remote/path/
- 从服务器下载文件:
scp username@server_ip:/remote/path/file.txt ./localpath/
- 指定私钥:
scp -i ~/.ssh/id_ed25519 localfile.txt username@server_ip:/remote/path/
4.2 使用
rsync
(推荐大文件/增量同步)
rsync -avz -e "ssh -i ~/.ssh/id_ed25519" ./localdir/ username@server_ip:/remote/dir/
4.3 常见注意事项
-
确保 .ssh 目录权限正确。
-
使用非默认端口时:
ssh -p 2222 username@server_ip
scp -P 2222 file.txt username@server_ip:/path/