SSH 自启
bash
代码语言:txt复制# 开机自动启动ssh命令
sudo systemctl enable ssh
# 关闭ssh开机自动启动命令
sudo systemctl disable ssh
允许 root 远程登陆
Ubuntu
bash
代码语言:txt复制# 允许root远程登陆
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# SSH开机自启
systemctl enable ssh
# 开启SSH
/etc/init.d/ssh start
CentOS/Debian/Kali
bash
代码语言:txt复制# 允许root远程登陆
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# SSH开机自启
systemctl enable sshd
# 开启SSH
systemctl start sshd
ssh 连接非 22 端口
bash
代码语言:txt复制ssh -p 端口 x.x.x.x
ssh 使用公私钥登陆
bash
代码语言:txt复制 # 生成公私钥
ssh-keygen
# 到ssh公私钥放的文件夹
cd /root/.ssh/
# 将公钥的内容拷贝到authorized_keys文件中
cat id_rsa.pub >> authorized_keys
# 关闭密码登陆
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config
# 重启ssh
/etc/init.d/ssh restart
效果如下:
将服务器的 rsa 私钥下载下来,然后拷贝到自己的机器上。此时必须使用私钥匙登陆才可以成功:
bash
代码语言:txt复制# 将拷贝下来的私钥设置600权限
chmod 600 ~/Downloads/test_rsa
# 使用私钥登陆
ssh -i ~/Downloads/test_rsa root@10.211.55.9
一台电脑保存多 SSH KEY
假设有这样一个场景
服务器IP | 私钥位置 |
---|---|
1.1.1.1 | ~/.ssh/id_rsa_a |
2.2.2.2 | ~/.ssh/id_rsa_b |
想要自己的电脑保存这两台服务器的私钥的话,可以这样配置:
在 ~/.ssh
目录下创建 config
文件:
bash
代码语言:txt复制vim ~/.ssh/config
输入以下信息:
bash
代码语言:txt复制Host 1.1.1.1
IdentityFile ~/.ssh/id_rsa_a
Host 2.2.2.2
IdentityFile ~/.ssh/id_rsa_b
然后设置私钥的权限:
bash
代码语言:txt复制chmod 600 ~/.ssh/id_rsa_a
chmod 600 ~/.ssh/id_rsa_b
SSH 取消公私钥登陆
bash
代码语言:txt复制# 清空.ssh文件夹
rm -rf /root/.ssh/*
# 允许密码登陆
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
# 重启SSH服务
/etc/init.d/ssh restart
# CentOS 服务器这样重启
systemctl restart sshd
SCP 拷贝文件
bash
代码语言:txt复制scp 本地文件 用户名@服务器地址:要拷贝的路径
SCP 拷贝非 22 端口文件
bash
代码语言:txt复制scp -P端口 本地文件 用户名@服务器地址:要拷贝的路径
FTP
连接 FTP
最基本的连接方式:
bash
代码语言:txt复制ftp ip
FTP 连接非默认端口:
bash
代码语言:txt复制ftp ip port
或者:
bash
代码语言:txt复制➜ ~ ftp
ftp> open ip port
一个完整的登录示例:
bash
代码语言:txt复制➜ ~ ftp 116.xx.xx.xx 21
Connected to 116.xx.xx.xx.
220 Welcome to www.net.cn FTP service.
Name (116.xx.xx.xx:sqlsec): hyuxxxxxxxxxx
331 Please specify the password.
Password:
230 Login successful.
ftp>