Debian Linux 特定套件使用新版本(Testing)的作法

Debian / Ubuntu Linux 某個套件需要用到 testing / sid 的套件,但是其它都還是想維持在 stable,要怎麼做呢?

Debian Linux 特定套件使用新版本(Testing)的作法

由此安全性因素,所以要將 openssh 由 jessie (stable) 升級到 stretch (testing / sid),要怎麼做呢?(簡單說就是如何在 stable 環境安裝 testing 環境的套件)

參考文件

目前 jessie (stable) 的套件

  • dpkg -l | grep openssh
    ii openssh-server 1:6.7p1-5+deb8u3 amd64 secure shell (SSH) server, for secure access from remote machines

在 stable 環境安裝 testing openssh 套件

在 stable 環境安裝 testing openssh 套件 步驟如下:

  1. sudo vim /etc/apt/apt.conf.d/99defaultrelease # 此檔案不存在,直接新增
    APT::Default-Release "stable";
  2. sudo vim /etc/apt/sources.list.d/testing.list # 新增檔案之後方便移除
    deb     http://ftp.tw.debian.org/debian/    testing main contrib non-free                                                                                                                              
    deb-src http://ftp.tw.debian.org/debian/    testing main contrib non-free                                                                                                                                   
    deb     http://security.debian.org/         testing/updates  main contrib non-free
  3. sudo apt-get update
  4. apt-cache search ssh
  5. sudo apt-get install -t testing openssh-server # 安裝 testing 版本,到此就升級完成
  6. dpkg -l | grep openssh # 確認
    ii  openssh-client  1:7.3p1-1  amd64 secure shell (SSH) client, for secure access to remote machines                                                                                                   
    ii  openssh-server  1:7.3p1-1  amd64 secure shell (SSH) server, for secure access from remote machines

想要將 testing 環境的套件改回 stable 套件的步驟

參考文件

要灌回舊版,回到 stable 版本,先查看舊版的資料

  1. sudo apt-cache showpkg openssh-server
    Provides:                                                                                                                                                                                              
    1:7.3p1-1 - ssh-server # testing                                                                                                                                                                            
    1:6.7p1-5+deb8u3 - ssh-server # jessie                                                                                                                                                                      
    1:6.0p1-4+deb7u6 - ssh-server # wheezy
  2. sudo apt-get install openssh-server=1:6.7p1-5+deb8u3 # 會有衝突,補齊下面套件版本
  3. sudo apt install openssh-server=1:6.7p1-5+deb8u3 openssh-client=1:6.7p1-5+deb8u3 openssh-sftp-server=1:6.7p1-5+deb8u3
  4. sudo rm /etc/apt/apt.conf.d/99defaultrelease /etc/apt/sources.list.d/testing.list# 還原
  5. sudo apt-get update # 到此就已經還原完成,但是要注意設定檔是否會造成舊版無法啟動
  6. vim /etc/ssh/sshd_config # 注意 7.x 與 6.7 的版本設定不同,/var/log/syslog 要看看有沒有問題
    PermitRootLogin prohibit-password # 建議直接改成 PermitRootLogin no
  7. 在遠端的話,請確認套件設定沒問題在重新啟動 SSH

PermitRootLogin 的參數差異

  • PermitRootLogin 的參數用意:禁止 root 使用密碼登入(預設是允許的)
  • PermitRootLogin without-password:禁止 root 使用公鑰 / 私鑰登入
  • PermitRootLogin prohibit-password:同上,新版可以使用這個名字:prohibit-password,但是恢復舊版會不相容,造成設定檔錯誤,ssh 無法啟動
  • PermitRootLogin no:禁止 root 使用 SSH 登入

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料