碰见的三个问题:
1.vscode连接失败
2.登录信息配置
3.新建子用户的一些设置
思考:遇见问题,第一反应 应该如何解决
目录
1. 错误
解决方法
原因
步骤 1:找到known_hosts文件并编辑
步骤 2:通过VSCode终端输入删除命令(推荐方法)
步骤 3:重新尝试连接
总结
2.错误
可能原因
解决方法
1. 确认用户名和密码
2. 尝试手动登录
3. 配置SSH密钥认证(推荐)
4. 检查服务器配置
总结
3.错误
1. 修改用户提示符显示(user@hostname)
查看和修改PS1变量:
2. 配置常用命令(如ll)
检查命令是否可用:
将别名永久保存:
3. 配置登录欢迎信息(Last login提示等)
修改motd文件:
配置动态登录信息:
4. 配置全局命令(可选)
总结
1. vscode连接失败
22:28:38.191] > @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
> Someone could be eavesdropping on you right now (man-in-the-middle attack)!
> It is also possible that a host key has just been changed.
> The fingerprint for the ED25519 key sent by the remote host is
> SHA256:cNu12124Ot0VBwUv+/nv7LuAgoJ27Zqf5U359l8HbvI.
> Please contact your system administrator.
> Add correct host key in C:\\Users\\xumen/.ssh/known_hosts to get rid of this message.
> Offending ECDSA key in C:\\Users\\xumen/.ssh/known_hosts:6
> Host key for []:1194 has changed and you have requested strict checking.
> Host key verification failed.
> 过程试图写入的管道不存在。
> ]0;C:\WINDOWS\System32\cmd.exe
[22:28:38.192] Got some output, clearing connection timeout
[22:28:39.712] "install" terminal command done
[22:28:39.712] Install terminal quit with output: ]0;C:\WINDOWS\System32\cmd.exe
[22:28:39.712] Received install output: ]0;C:\WINDOWS\System32\cmd.exe
[22:28:39.713] Failed to parse remote port from server output
[22:28:39.713] Exec server for ssh-remote+ failed: Error
[22:28:39.713] Error opening exec server for ssh-remote+: Error
[22:32:55.843] Picking SSH host
[22:33:01.252] ConfigFileWatcher: start watching file:///c%3A/Users/xumen/.ssh/config
[22:33:01.252] ConfigFileWatcher: adding save listener
[22:33:01.252] ConfigFileWatcher: adding close listener
[22:33:06.226] Picking SSH host
[22:33:07.664] Selected
解决方法
- 查看和编辑
known_hosts
文件:
打开错误提示中提到的文件路径(例如:C:\Users\xumen\.ssh\known_hosts
),找到第6行(Offending ECDSA key in C:\\Users\\xumen/.ssh/known_hosts:6
)。 - 删除冲突的密钥:
-
- 直接删除第6行。
- 或者使用以下命令来删除旧的主机密钥:
ssh-keygen -R [hostname_or_ip]:port
- 重新连接:
运行SSH命令时,系统会提示新的主机密钥,输入yes
接受新密钥,密钥将被自动添加到known_hosts
文件中:
ssh user@ip -p port
原因
- 服务器更新或重装后,主机密钥变了。
- 服务器被替换。
- 你连接到了不同的服务器(DNS变更等)。
都有可能出现 这种情况
在VSCode下操作,可以通过以下步骤完成删除和重新添加SSH主机密钥的过程:
步骤 1:找到known_hosts
文件并编辑
- 打开终端:
在VSCode中:
-
- 点击菜单栏
终端 -> 新终端
。 - 或使用快捷键 Ctrl + `(注意:这是反引号)。
- 点击菜单栏
- 定位到
known_hosts
文件:
通常在你的用户目录下的.ssh
文件夹中,例如:
C:\Users\xumen\.ssh\known_hosts
你可以用VSCode直接打开这个文件:
-
- 点击 文件 -> 打开文件,导航到路径
C:\Users\xumen\.ssh\known_hosts
。 - 找到提示中提到的第6行,删除这一行并保存。
- 点击 文件 -> 打开文件,导航到路径
步骤 2:通过VSCode终端输入删除命令(推荐方法)
如果不想手动编辑文件,可以直接通过命令删除旧的主机密钥:
- 在VSCode终端中输入命令:
根据错误提示中提供的信息,运行以下命令:
ssh-keygen -R [ip]:port
这会自动从known_hosts
文件中删除冲突的密钥。
- 验证密钥是否删除成功:
如果需要验证,运行以下命令查看:
cat ~/.ssh/known_hosts
检查文件中是否还存在相关的行。
步骤 3:重新尝试连接
- 打开VSCode的 远程SSH插件:
-
- 点击左侧活动栏的 Remote Explorer。
- 找到你的SSH主机(如
ip
),点击连接。
- 重新接受主机密钥:
如果是第一次连接,VSCode会提示你输入yes
来接受新的主机密钥,输入后即可正常连接。
总结
- 删除密钥可以通过手动编辑
known_hosts
文件或运行**ssh-keygen -R
命令**完成。 - 以上命令可以在VSCode的终端中直接执行,操作完毕后重新连接即可。
- 如果还有问题,检查是否安装了 Remote - SSH 插件,以及 SSH配置是否正确。
2.登录信息配置
报错 "Permission denied, please try again." 表示在使用SSH连接时,登录凭据(用户名或密码)验证失败。以下是可能的原因和解决方法:
可能原因
- 密码错误:
-
- 输入的密码可能不正确。
- 请确认输入的密码与远程服务器上的账户密码匹配。
- 用户名错误:
-
- 默认情况下,VSCode可能使用了错误的用户名。确保使用了正确的用户名。
- SSH密钥验证未配置(如果尝试使用密钥登录):
-
- 如果服务器配置为使用SSH密钥进行验证,而没有正确配置本地密钥对或密钥未被服务器信任,会导致密码提示。
- 服务器配置:
-
- 服务器可能禁用了密码登录,仅允许密钥登录。
- 服务器上的
sshd_config
文件可能设置了PermitRootLogin no
或PasswordAuthentication no
。
解决方法
1. 确认用户名和密码
- 如果远程主机不允许
root
用户登录,请尝试使用其他用户,例如:
ssh user@ip -p port
- 在VSCode Remote-SSH配置文件中(
~/.ssh/config
),确保定义了正确的用户名。例如:
Host ip.net
HostName ip
Port 1194
User your_username
2. 尝试手动登录
- 在VSCode终端或系统终端中,手动输入SSH命令:
ssh root@ip -p 1194
- 检查是否能够正常输入密码并连接。
3. 配置SSH密钥认证(推荐)
如果服务器支持密钥登录,可以生成并配置SSH密钥:
- 生成密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com"
或使用RSA:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 将公钥上传到服务器:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@ip -p 1194
- 配置VSCode:
在~/.ssh/config
中,指明私钥:
Host ip
HostName ip
Port 1194
User your_username
IdentityFile ~/.ssh/id_ed25519
4. 检查服务器配置
如果有权限管理服务器,检查以下配置文件/etc/ssh/sshd_config
:
- 确保密码登录启用(如果需要):
PasswordAuthentication yes
- 确保
root
用户登录被允许(如需要):
PermitRootLogin yes
之后重启SSH服务:
sudo systemctl restart sshd
总结
- 确认密码或密钥正确。
- 确保VSCode的
~/.ssh/config
中配置了正确的用户名和密钥。 - 如果服务器不允许密码登录,请配置SSH密钥验证。
3.新建子用户的一些设置
在Linux中,为用户配置登录后的提示符显示(如user@hostname
)以及启用命令(如ll
),需要修改相关的配置文件。
1. 修改用户提示符显示(user@hostname
)
查看和修改PS1变量:
PS1变量定义了命令行提示符的格式,默认显示user@hostname
。可以通过以下方式配置:
- 编辑用户的shell配置文件:
根据用户使用的shell,修改对应文件:
打开文件编辑:
nano ~/.bashrc
-
- 如果是
bash
:~/.bashrc
- 如果是
zsh
:~/.zshrc
- 如果是
- 设置PS1变量:
添加以下内容到文件末尾:
export PS1="\u@\h:\w\$ "
含义:
-
\u
:当前用户名\h
:主机名\w
:当前工作目录\$
:普通用户为$
,root用户为#
- 应用更改:
保存文件后运行以下命令使更改生效:
source ~/.bashrc
2. 配置常用命令(如ll
)
检查命令是否可用:
ll
是ls -l
的别名,但在某些系统中可能没有默认配置。
- 直接运行:
alias ll="ls -l --color=auto"
将别名永久保存:
- 打开用户配置文件:
nano ~/.bashrc
- 添加以下行:
alias ll="ls -l --color=auto"
- 应用更改:
source ~/.bashrc
3. 配置登录欢迎信息(Last login提示等)
修改motd
文件:
- 登录信息如
Last login
是由系统自动生成的,可以显示其他内容通过修改/etc/motd
文件。 - 编辑
/etc/motd
:
sudo nano /etc/motd
添加自定义内容并保存。
配置动态登录信息:
如果需要更详细的登录信息,可以修改/etc/ssh/sshd_config
启用PrintLastLog
:
sudo nano /etc/ssh/sshd_config
确保包含:
PrintLastLog yes
然后重启SSH服务:
sudo systemctl restart sshd
4. 配置全局命令(可选)
如果需要为所有用户启用某些命令(如ll
),可以将别名添加到全局配置文件:
sudo nano /etc/profile
添加以下内容:
alias ll="ls -l --color=auto"
保存后运行:
source /etc/profile
总结
- 修改PS1变量控制提示符样式。
- 配置别名
ll
等常用命令,添加到用户或全局配置文件中。 - 调整
motd
和SSH设置优化登录信息。