当前位置: 首页 > article >正文

云服务器重装系统后 一些报错与解决[ vscode / ssh / 子用户]

碰见的三个问题:

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 

解决方法

  1. 查看和编辑known_hosts文件
    打开错误提示中提到的文件路径(例如:C:\Users\xumen\.ssh\known_hosts),找到第6行(Offending ECDSA key in C:\\Users\\xumen/.ssh/known_hosts:6)。
  2. 删除冲突的密钥
    • 直接删除第6行。
    • 或者使用以下命令来删除旧的主机密钥:
ssh-keygen -R [hostname_or_ip]:port
  1. 重新连接
    运行SSH命令时,系统会提示新的主机密钥,输入yes接受新密钥,密钥将被自动添加到known_hosts文件中:
ssh user@ip -p port

原因

  • 服务器更新或重装后,主机密钥变了。
  • 服务器被替换。
  • 你连接到了不同的服务器(DNS变更等)。

都有可能出现 这种情况

在VSCode下操作,可以通过以下步骤完成删除和重新添加SSH主机密钥的过程:

步骤 1:找到known_hosts文件并编辑

  1. 打开终端
    在VSCode中:
    • 点击菜单栏 终端 -> 新终端
    • 或使用快捷键 Ctrl + `(注意:这是反引号)。
  1. 定位到known_hosts文件
    通常在你的用户目录下的.ssh文件夹中,例如:
C:\Users\xumen\.ssh\known_hosts

你可以用VSCode直接打开这个文件:

    • 点击 文件 -> 打开文件,导航到路径 C:\Users\xumen\.ssh\known_hosts
    • 找到提示中提到的第6行,删除这一行并保存。

步骤 2:通过VSCode终端输入删除命令(推荐方法)

如果不想手动编辑文件,可以直接通过命令删除旧的主机密钥:

  1. 在VSCode终端中输入命令
    根据错误提示中提供的信息,运行以下命令:
ssh-keygen -R [ip]:port

这会自动从known_hosts文件中删除冲突的密钥。

  1. 验证密钥是否删除成功
    如果需要验证,运行以下命令查看:
cat ~/.ssh/known_hosts

检查文件中是否还存在相关的行。


步骤 3:重新尝试连接

  1. 打开VSCode的 远程SSH插件
    • 点击左侧活动栏的 Remote Explorer
    • 找到你的SSH主机(如ip),点击连接。
  1. 重新接受主机密钥
    如果是第一次连接,VSCode会提示你输入yes来接受新的主机密钥,输入后即可正常连接。

总结

  • 删除密钥可以通过手动编辑known_hosts文件或运行**ssh-keygen -R命令**完成。
  • 以上命令可以在VSCode的终端中直接执行,操作完毕后重新连接即可。
  • 如果还有问题,检查是否安装了 Remote - SSH 插件,以及 SSH配置是否正确。


2.登录信息配置

报错 "Permission denied, please try again." 表示在使用SSH连接时,登录凭据(用户名或密码)验证失败。以下是可能的原因和解决方法:


可能原因

  1. 密码错误
    • 输入的密码可能不正确。
    • 请确认输入的密码与远程服务器上的账户密码匹配。
  1. 用户名错误
    • 默认情况下,VSCode可能使用了错误的用户名。确保使用了正确的用户名。
  1. SSH密钥验证未配置(如果尝试使用密钥登录):
    • 如果服务器配置为使用SSH密钥进行验证,而没有正确配置本地密钥对或密钥未被服务器信任,会导致密码提示。
  1. 服务器配置
    • 服务器可能禁用了密码登录,仅允许密钥登录。
    • 服务器上的sshd_config文件可能设置了PermitRootLogin noPasswordAuthentication 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。可以通过以下方式配置:

  1. 编辑用户的shell配置文件
    根据用户使用的shell,修改对应文件:

打开文件编辑:

nano ~/.bashrc
    • 如果是bash~/.bashrc
    • 如果是zsh~/.zshrc
  1. 设置PS1变量
    添加以下内容到文件末尾:
export PS1="\u@\h:\w\$ "

含义:

    • \u:当前用户名
    • \h:主机名
    • \w:当前工作目录
    • \$:普通用户为$,root用户为#
  1. 应用更改
    保存文件后运行以下命令使更改生效:
source ~/.bashrc

2. 配置常用命令(如ll

检查命令是否可用

llls -l的别名,但在某些系统中可能没有默认配置。

  • 直接运行:
alias ll="ls -l --color=auto"
将别名永久保存
  1. 打开用户配置文件:
nano ~/.bashrc
  1. 添加以下行:
alias ll="ls -l --color=auto"
  1. 应用更改:
source ~/.bashrc

3. 配置登录欢迎信息(Last login提示等)

修改motd文件
  1. 登录信息如Last login是由系统自动生成的,可以显示其他内容通过修改/etc/motd文件。
  2. 编辑/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

总结

  1. 修改PS1变量控制提示符样式。
  2. 配置别名ll等常用命令,添加到用户或全局配置文件中。
  3. 调整motd和SSH设置优化登录信息。


http://www.kler.cn/a/421739.html

相关文章:

  • case的用法3
  • 软件工程——期末复习(2)
  • JavaSE学习心得(APL与算法篇)
  • 机器学习面试八股总结
  • Java学习笔记(10)--面向对象基础
  • Qt桌面应用开发 第十天(综合项目二 翻金币)
  • Spring 邮件发送
  • 基于开源云原生数据仓库 ByConity 体验多种数据分析场景
  • ThingsBoard集成外部工单系统方案
  • 数据仓库的概念
  • Qt 2D绘图之三:绘制文字、路径、图像、复合模式
  • Vue3可以不用Pinia了?
  • es 3期 第12节-选择合适的数据查询方式
  • 【Go底层】time包中Timer定时器原理
  • 【分组去重】.NET开源 ORM 框架 SqlSugar 系列
  • 论文阅读:Generating Synthetic Data for Medical Imaging
  • 企业AI助理在数据分析与决策中扮演的角色
  • B树与B+树的区别,为什么MySQL使用B+树不使用B树
  • Elasticsearch在liunx 中单机部署
  • ElasticSearch QueryDSL详解