ubuntu安装openssh-server报依赖错误的解决方法

本文介绍了解决在Ubuntu系统中安装OpenSSH-server遇到的依赖问题的方法。通过降级安装特定版本的OpenSSH-client,成功解决了依赖冲突并完成了OpenSSH-server的安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统环境

Linux user #50~14.04.1-Ubuntu SMP Wed Jul 13 01:06:37 UTC 2016 i686 i686 i686 GNU/Linux

报错问题

执行以下命令安装openssh-server:

sudo apt-get install openssh-server

笔者并没有安装成功,并且收到如下提示:

下列软件包有未满足的依赖关系:
 openssh-server : 依赖: openssh-client (= 1:6.6p1-2ubuntu1) 但是 1:6.6p1-2ubuntu2.7 正要被安装
                  推荐: ncurses-term 但是它将不会被安装
                  推荐: ssh-import-id 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

这里写图片描述

解决方法

这是因为,openssh-server是依赖于openssh-clien的,那ubuntu不是自带了openssh-client吗?原由是自带的openssh-clien与所要安装的openssh-server所依赖的版本不同,这里所依赖的版本是1:6.6p1-2ubuntu1

所以要安装对应版本的openssh-clien,来覆盖掉ubuntu自带的openssh-clien:

$ sudo apt-get install openssh-client=1:6.6p1-2ubuntu1
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
建议安装的软件包:
  libpam-ssh keychain monkeysphere
下列软件包将被【降级】:
  openssh-client
升级了 0 个软件包,新安装了 0 个软件包,降级了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 577 kB 的软件包。
解压缩后将会空出 5,120 B 的空间。
您希望继续执行吗? [Y/n] y
获取:1 http://mirrors.aliyun.com/ubuntu/ trusty/main openssh-client i386 1:6.6p1-2ubuntu1 [577 kB]
下载 577 kB,耗时 0秒 (850 kB/s)       
dpkg:警告:即将把 openssh-client 从 1:6.6p1-2ubuntu2.7 降级到 1:6.6p1-2ubuntu1
(正在读取数据库 ... 系统当前共安装有 171781 个文件和目录。)
正准备解包 .../openssh-client_1%3a6.6p1-2ubuntu1_i386.deb  ...
正在将 openssh-client (1:6.6p1-2ubuntu1) 解包到 (1:6.6p1-2ubuntu2.7) 上 ...
正在处理用于 man-db (2.6.7.1-1ubuntu1) 的触发器 ...
正在设置 openssh-client (1:6.6p1-2ubuntu1) ...

覆盖安装执行完成之后,再次安装openssh-server就i可以成功安装了:

这里写图片描述

使用ps命令查找ssh的系统进程,找到sshd说明安装成功:

$ ps -e | grep ssh
4723 ?        00:00:00 sshd

提示:有的时候,不仅报一个依赖错误,覆盖安装一个之后还会报另外一个依赖错误,这时候依旧采用覆盖安装的方法即可。

### 解决Ubuntu系统安装OpenSSH-Server时遇到的错误问题 在Ubuntu系统中安装`openssh-server`时,如果遇到依赖关系未满足或包无法安装的问题,可以尝试以下方法进行解决。以下内容结合了相关引用信息以及专业知识进行详细说明。 #### 1. 检查并修复损坏的包 当出现依赖关系未满足的情况时,通常可以通过修复损坏的包来解决问题。运行以下命令以尝试修复: ```bash sudo apt --fix-broken install ``` 此命令会尝试修复任何未正确安装或配置的包[^1]。 #### 2. 更新软件包列表和升级系统 确保系统的软件包列表是最新的,并且所有已安装的包都已升级到最新版本。运行以下命令: ```bash sudo apt update && sudo apt upgrade ``` 这一步有助于避免因软件包过时而导致的依赖问题[^2]。 #### 3. 强制重新安装`openssh-client`和`openssh-server` 有时,`openssh-server`的安装失败可能是由于其依赖项`openssh-client`未正确安装或版本不匹配。可以通过以下命令强制重新安装这两个包: ```bash sudo apt install --reinstall openssh-client openssh-server ``` 此操作将确保`openssh-client`和`openssh-server`的版本一致,并满足依赖关系[^1]。 #### 4. 检查是否有被锁定的包 如果系统中存在被锁定的包(held broken packages),可能会导致安装失败。可以使用以下命令检查并解锁这些包: ```bash sudo apt-mark showhold ``` 如果有被锁定的包,可以使用以下命令解锁: ```bash sudo apt-mark unhold <package-name> ``` 之后再次尝试安装`openssh-server`[^2]。 #### 5. 手动安装缺失的依赖项 如果依赖关系仍然未满足,可以手动安装缺失的依赖项。根据引用信息,`openssh-sftp-server`和`ssh-import-id`可能是缺失的依赖项。运行以下命令安装这些包: ```bash sudo apt install openssh-sftp-server ssh-import-id ``` #### 6. 验证安装是否成功 完成上述步骤后,验证`openssh-server`是否已成功安装: ```bash sudo systemctl status ssh ``` 如果服务正在运行,则表示安装成功。否则,可以尝试重启服务: ```bash sudo systemctl restart ssh ``` #### 7. 检查日志文件 如果问题仍未解决,可以检查系统日志以获取更多信息: ```bash sudo journalctl -xe ``` 这将显示与`ssh`相关的错误日志,帮助进一步诊断问题[^1]。 --- ### 示例代码:添加启动脚本 如果需要确保`sshd`服务在系统启动时自动启动,可以参考以下配置: ```bash # 编辑sshd_config文件 sudo nano /etc/ssh/sshd_config # 确保以下行未被注释 PermitRootLogin yes PasswordAuthentication yes # 保存并退出,然后重启服务 sudo systemctl restart ssh ``` 此外,可以在`Android.mk`文件中添加模块以确保`sshd`随系统启动[^3]。 --- ###
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴翔的技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值