我有两个vps,一直都是用密码登陆的。今天看到网上说密码登陆不安全,登陆了vps商家面板,发现其中一个可以选密钥登陆,另一个只有密码登陆选项。如果我把密码设置的长一点,能安全吗?还是必须用密钥登陆才行?
热议
推荐楼 Sam_Edward 6小时前
### 确认VPS中存放私钥和公钥的相关文件和文件夹存在:
1. **进入你的`.ssh`目录**:
首先,确保`.ssh`目录存在。你可以使用以下命令来创建这个目录(如果它还不存在的话):
```bash
mkdir -p ~/.ssh
```
2. **设置`.ssh`目录的权限**:
`.ssh`目录应该只有你的用户可以访问。设置正确的权限:
```bash
chmod 700 ~/.ssh
```
3. **创建`authorized_keys`文件**:
如果`authorized_keys`文件不存在,可以使用`touch`命令创建它:
```bash
touch ~/.ssh/authorized_keys
```
4. **设置`authorized_keys`文件的权限**:
为了保持安全性,`authorized_keys`文件应该只有文件的所有者可以读写:
```bash
chmod 600 ~/.ssh/authorized_keys
```
1. **添加公钥到`authorized_keys`文件(这一步暂时忽略,后续再讨论)**:
现在你可以把需要的公钥添加到这个文件中。可以手动编辑文件,或者使用如下命令:
```bash
echo public_key_string >> ~/.ssh/authorized_keys
```
其中`public_key_string`应该替换为你的公钥内容。如果是从另一个系统拷贝公钥,确保拷贝的公钥没有换行或格式错误。
完成这些步骤后,你的VPS将配置为仅允许拥有`authorized_keys`文件中列出的公钥的用户通过SSH进行密钥认证登录。确保只将可信的公钥添加到此文件中。
### 关闭密码登录并启用密钥登录
1. **登录到VPS**:
使用SSH客户端(如PuTTY或终端)登录到你的VPS。
2. **编辑SSH配置文件**:
打开`/etc/ssh/sshd_config`文件进行编辑。你可以使用文本编辑器,如`nano`或`vim`:
```bash
sudo vim/etc/ssh/sshd_config
```
3. **修改配置**:
在`sshd_config`文件中找到以下行(如果不存在,你可以添加它们):
- 将`PasswordAuthentication`更改为`no`。
- 确保`PubkeyAuthentication`设置为`yes`。
- 确认`AuthorizedKeysFile`行未被注释掉,通常它会指向`.ssh/authorized_keys`。
修改后的部分看起来像这样:
```
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
```
4. **保存并关闭文件**:
保存更改并关闭编辑器。
5. **重启SSH服务**:
为使更改生效,重启SSH服务:
```bash
sudo systemctl restart sshd
```
### VPS公钥的存放位置
当你在一个VPS上设置SSH密钥登录时,公钥应该放在你想要访问的VPS上。这是其标准存放位置:
1. **公钥存放在服务器的特定文件中**:
-<mark style="background: #e56eee">**如果是非root用户**</mark>:公钥需要添加到服务器上用户家目录下的`.ssh/authorized_keys`文件中。
```bash
vim~/.ssh/authorized_keys
```
- 文件路径通常是`~/.ssh/authorized_keys`或`/home/username/.ssh/authorized_keys`。
- <mark style="background: #e56eee"> **如果是root用户**</mark>,那么公钥authorized_keys是在/root/.ssh/目录下
```bash
vim/root/.ssh/authorized_keys
```
1. **添加公钥到`authorized_keys`**:
- 你可以使用文本编辑器手动添加公钥到`authorized_keys`文件。
```bash
sudo vim /root/.ssh/authorized_keys
```
- 或者使用命令如`ssh-copy-id`从本地机器自动添加公钥。
### 私钥的存放位置
#### linux系统:
当你想要从一个VPS连接到另一个VPS时,你需要在源VPS上存储私钥:
1. **私钥存放在发起连接的VPS上**:
- 私钥文件应该存放在发起SSH连接的VPS的用户家目录下的`.ssh`目录中。
例如:上传私钥到vps的/root/.ssh/位置
```bash
scp -P 58197 'C:\Users\Francis\Dropbox\PC\Downloads\cloudcone_private_key.ppk‘root@13.114.140.3:/root/.ssh/
```
- 比如,如果你从VPS A连接到VPS B,那么VPS A需要有一份用来连接VPS B的私钥。
1. **安全性考虑**:
- 确保私钥文件的权限设置是安全的,通常是只有所有者有读取权限
**<mark style="background: #e56eee">chmod 600 /path/to/private_key</mark>**
上述一定要执行,否则会报错,系统认为不够安全
- 不要在多个地方复制同一私钥,尤其是不要无缘无故地将私钥放在多个服务器上。
#### windows系统
4. **存储位置**:
在Windows中,私钥通常存储在一个安全的,仅用户可访问的文件夹中。一个常见的选择是在用户目录下的`.ssh`文件夹(例如`C:\Users\[YourUserName]\.ssh`)。
2. **多个私钥**:
- 你可以在`.ssh`目录下存储多个私钥文件。每个密钥通常有一个单独的文件。
- 使用SSH客户端(如PuTTY)时,你可以指定使用哪个私钥文件进行连接。
### 通过密钥登录VPS
1. **连接时指定私钥**:
使用SSH客户端时,如PuTTY,你可以在连接设置中指定要使用的私钥文件。如果使用命令行的SSH,可以使用`-i`选项指定私钥文件,如:
```bash
ssh -i path/to/private_key username@hostname
```
确保在进行这些更改之前,你已经在服务器上设置了公钥,并且可以通过密钥进行SSH连接。一旦关闭了密码认证,如果没有正确设置公钥,你可能会被锁定在系统外。
例如:
```bash
ssh -i /root/.ssh/cloudcone_ssh_private_openssh_key -p 46911 root@你滴ip
```
```bash
ssh -i 'C:\Users\你的用户名\.ssh\My_kali_2023_12_16_openssh_key' -p25576kali@你滴ip
```
推荐楼 louiejordan 6小时前
我以为MJJ大多都是密钥登陆
3楼 Sam_Edward 6小时前
密钥是最安全的,当然,密码长度够长也是安全的,这个你自己看了,即使密码长度再长,也会有人尝试去爆破你的ssh,除非你再加上fail2ban功能+改端口
所以建议用密钥
4楼 hcyme 6小时前
必须
5楼 马克思和赵子龙 6小时前
我以为MJJ大多都是密钥登陆
我设置的10位密码安全吗
6楼 马克思和赵子龙 6小时前
密钥是最安全的,当然,密码长度够长也是安全的,这个你自己看了,即使密码长度再长,也会有人尝试去爆破你 ...
商家后台面板里没有设置密钥登陆选项
7楼 amiguo 6小时前
我觉得就是数字+大小写字母+符号密码,然后换个端口,我阿里云香港嘎嘎被扫,换了端口后就没有了
8楼 doghouse 6小时前
密钥就是麻烦,感觉还是自己设置超过10位的密码应该没啥问题
9楼 Sam_Edward 6小时前
商家后台面板里没有设置密钥登陆选项
自己弄啊,多简单,就复制一行内容到一个文件,给下权限就好了
10楼 Microcharon 6小时前
密钥就是要注意好生保管,一丢失就麻烦
12楼 Sam_Edward 6小时前
我觉得就是数字+大小写字母+符号密码,然后换个端口,我阿里云香港嘎嘎被扫,换了端口后就没有了 ...
加上fail2ban会好很多,但是建议密钥,密钥不放心,可以加2FA验证,也很简单,但是没必要
13楼 Sam_Edward 6小时前
### 确认VPS中存放私钥和公钥的相关文件和文件夹存在:
1. **进入你的`.ssh`目录**:
首先,确保`.ssh`目录存在。你可以使用以下命令来创建这个目录(如果它还不存在的话):
```bash
mkdir -p ~/.ssh
```
2. **设置`.ssh`目录的权限**:
`.ssh`目录应该只有你的用户可以访问。设置正确的权限:
```bash
chmod 700 ~/.ssh
```
3. **创建`authorized_keys`文件**:
如果`authorized_keys`文件不存在,可以使用`touch`命令创建它:
```bash
touch ~/.ssh/authorized_keys
```
4. **设置`authorized_keys`文件的权限**:
为了保持安全性,`authorized_keys`文件应该只有文件的所有者可以读写:
```bash
chmod 600 ~/.ssh/authorized_keys
```
1. **添加公钥到`authorized_keys`文件(这一步暂时忽略,后续再讨论)**:
现在你可以把需要的公钥添加到这个文件中。可以手动编辑文件,或者使用如下命令:
```bash
echo public_key_string >> ~/.ssh/authorized_keys
```
其中`public_key_string`应该替换为你的公钥内容。如果是从另一个系统拷贝公钥,确保拷贝的公钥没有换行或格式错误。
完成这些步骤后,你的VPS将配置为仅允许拥有`authorized_keys`文件中列出的公钥的用户通过SSH进行密钥认证登录。确保只将可信的公钥添加到此文件中。
### 关闭密码登录并启用密钥登录
1. **登录到VPS**:
使用SSH客户端(如PuTTY或终端)登录到你的VPS。
2. **编辑SSH配置文件**:
打开`/etc/ssh/sshd_config`文件进行编辑。你可以使用文本编辑器,如`nano`或`vim`:
```bash
sudo vim/etc/ssh/sshd_config
```
3. **修改配置**:
在`sshd_config`文件中找到以下行(如果不存在,你可以添加它们):
- 将`PasswordAuthentication`更改为`no`。
- 确保`PubkeyAuthentication`设置为`yes`。
- 确认`AuthorizedKeysFile`行未被注释掉,通常它会指向`.ssh/authorized_keys`。
修改后的部分看起来像这样:
```
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
```
4. **保存并关闭文件**:
保存更改并关闭编辑器。
5. **重启SSH服务**:
为使更改生效,重启SSH服务:
```bash
sudo systemctl restart sshd
```
### VPS公钥的存放位置
当你在一个VPS上设置SSH密钥登录时,公钥应该放在你想要访问的VPS上。这是其标准存放位置:
1. **公钥存放在服务器的特定文件中**:
-<mark style="background: #e56eee">**如果是非root用户**</mark>:公钥需要添加到服务器上用户家目录下的`.ssh/authorized_keys`文件中。
```bash
vim~/.ssh/authorized_keys
```
- 文件路径通常是`~/.ssh/authorized_keys`或`/home/username/.ssh/authorized_keys`。
- <mark style="background: #e56eee"> **如果是root用户**</mark>,那么公钥authorized_keys是在/root/.ssh/目录下
```bash
vim/root/.ssh/authorized_keys
```
1. **添加公钥到`authorized_keys`**:
- 你可以使用文本编辑器手动添加公钥到`authorized_keys`文件。
```bash
sudo vim /root/.ssh/authorized_keys
```
- 或者使用命令如`ssh-copy-id`从本地机器自动添加公钥。
### 私钥的存放位置
#### linux系统:
当你想要从一个VPS连接到另一个VPS时,你需要在源VPS上存储私钥:
1. **私钥存放在发起连接的VPS上**:
- 私钥文件应该存放在发起SSH连接的VPS的用户家目录下的`.ssh`目录中。
例如:上传私钥到vps的/root/.ssh/位置
```bash
scp -P 58197 'C:\Users\Francis\Dropbox\PC\Downloads\cloudcone_private_key.ppk‘root@13.114.140.3:/root/.ssh/
```
- 比如,如果你从VPS A连接到VPS B,那么VPS A需要有一份用来连接VPS B的私钥。
1. **安全性考虑**:
- 确保私钥文件的权限设置是安全的,通常是只有所有者有读取权限
**<mark style="background: #e56eee">chmod 600 /path/to/private_key</mark>**
上述一定要执行,否则会报错,系统认为不够安全
- 不要在多个地方复制同一私钥,尤其是不要无缘无故地将私钥放在多个服务器上。
#### windows系统
4. **存储位置**:
在Windows中,私钥通常存储在一个安全的,仅用户可访问的文件夹中。一个常见的选择是在用户目录下的`.ssh`文件夹(例如`C:\Users\[YourUserName]\.ssh`)。
2. **多个私钥**:
- 你可以在`.ssh`目录下存储多个私钥文件。每个密钥通常有一个单独的文件。
- 使用SSH客户端(如PuTTY)时,你可以指定使用哪个私钥文件进行连接。
### 通过密钥登录VPS
1. **连接时指定私钥**:
使用SSH客户端时,如PuTTY,你可以在连接设置中指定要使用的私钥文件。如果使用命令行的SSH,可以使用`-i`选项指定私钥文件,如:
```bash
ssh -i path/to/private_key username@hostname
```
确保在进行这些更改之前,你已经在服务器上设置了公钥,并且可以通过密钥进行SSH连接。一旦关闭了密码认证,如果没有正确设置公钥,你可能会被锁定在系统外。
例如:
```bash
ssh -i /root/.ssh/cloudcone_ssh_private_openssh_key -p 46911 root@你滴ip
```
```bash
ssh -i 'C:\Users\你的用户名\.ssh\My_kali_2023_12_16_openssh_key' -p25576kali@你滴ip
```
14楼 马克思和赵子龙 6小时前
自己弄啊,多简单,就复制一行内容到一个文件,给下权限就好了
求一个教程
15楼 Sam_Edward 6小时前
求一个教程
loc好像不支持markdown 格式,你自己改成md结尾的看可能舒服点;或者自己上 nodeseek论坛找找,那边可能也有;密钥用putty生成;putty生成的密钥记得保管好公钥和私钥,私钥要转换成openssh的才能放到linux系统下
16楼 louiejordan 6小时前
我设置的10位密码安全吗
安不安全很难说,不过最好是改成密钥登陆并且禁用密码登陆
17楼 Yzindex 6小时前
改了端口,设了个几十位的密码,差不多得了。
18楼 马克思和赵子龙 6小时前
改了端口,设了个几十位的密码,差不多得了。
大佬,改端口要怎么操作呢
19楼 Sam_Edward 6小时前
大佬,改端口要怎么操作呢
你是真菜啊,我以为我是菜逼了,结果今天看到更菜的了,具体如何用你找个3.5问问吧,真不行google
20楼 LALALAYES 6小时前
一般是密钥,不过你也可以试试1password生成100位数字字母符号密码,改个端口,我看谁能破
22楼 何处不惹尘埃 4小时前
秘钥登录的, 然后把 gpg 的秘钥转移到 yubikey 了, 只要用 yubikey 就可以登陆了
23楼 ftlh2005 4小时前
嫌密钥麻烦的话就用高位端口吧
24楼 H2○ 4小时前
我一般把SSH端口改成3389。
25楼 dragonfsky 3小时前
要不仅密钥登录 要不就搞fail2ban 密码不够复杂一直爆破总能给你爆破出来
26楼 linearn 2分钟前
### 确认VPS中存放私钥和公钥的相关文件和文件夹存在:
1. **进入你的`.ssh`目录**:
这个回复不错,很详细,关键还是 Markdown 格式的。
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。