zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Linux关于ssh和密钥登陆相关的笔记

2023-03-15 23:25:08 时间

SSH 自启

bash

# 开机自动启动ssh命令
sudo systemctl enable ssh

# 关闭ssh开机自动启动命令
sudo systemctl disable ssh

允许 root 远程登陆

Ubuntu

bash

# 允许root远程登陆
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

# SSH开机自启
systemctl enable ssh

# 开启SSH
/etc/init.d/ssh start

CentOS/Debian/Kali

bash

# 允许root远程登陆
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

# SSH开机自启
systemctl enable sshd

# 开启SSH
systemctl start sshd

ssh 连接非 22 端口

bash

ssh -p 端口 x.x.x.x

ssh 使用公私钥登陆

bash

 # 生成公私钥
 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

# 将拷贝下来的私钥设置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

vim ~/.ssh/config

输入以下信息:

bash

Host 1.1.1.1
    IdentityFile ~/.ssh/id_rsa_a

Host 2.2.2.2
    IdentityFile ~/.ssh/id_rsa_b

然后设置私钥的权限:

bash

chmod 600 ~/.ssh/id_rsa_a
chmod 600 ~/.ssh/id_rsa_b

SSH 取消公私钥登陆

bash

# 清空.ssh文件夹
rm -rf /root/.ssh/*

# 允许密码登陆
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config

# 重启SSH服务
/etc/init.d/ssh restart

# CentOS 服务器这样重启
systemctl restart sshd

SCP 拷贝文件

bash

scp 本地文件 用户名@服务器地址:要拷贝的路径

SCP 拷贝非 22 端口文件

bash

scp -P端口 本地文件 用户名@服务器地址:要拷贝的路径

FTP

连接 FTP

最基本的连接方式:

bash

ftp ip

FTP 连接非默认端口

bash

ftp ip port

或者:

bash

➜  ~ ftp
ftp> open ip port

一个完整的登录示例:

bash

➜  ~ 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>