SSH 到遠端需要執行 sudo 命令,除了修改 sudoers 外,還有哪些方式可以使用呢?
標籤: ssh
SSH 只允許憑證登入 (關閉密碼登入)
Linux SSH 想要關閉密碼登入,只有允許使用 Public-Key / Private-Key 登入,修改設定值如下:
- vim /etc/ssh/sshd_config
- PasswordAuthentication no
- PermitEmptyPasswords no
- PubkeyAuthentication yes # default
- 重啟 sshd 即可
Linux SSH 想避免 setlocale: LC_ALL: cannot change locale 的訊息
Linux SSH 到其它機器的時候,若自己的環境有設定 locales 是 zh_TW.UTF-8,但是連到的環境是沒有設定此語系的(通常是 en_US.UTF-8),就會出現下述的警告訊息:
- -bash: warning: setlocale: LC_ALL: cannot change locale (zh_TW.UTF-8)
要如何避免此問題呢?
閱讀全文〈Linux SSH 想避免 setlocale: LC_ALL: cannot change locale 的訊息〉
SSH config 遇到 Unsupported option "rsaauthentication" 解法
Debian Linux 升級到 buster 後,開始慢慢清問題,首先馬上就遇到透過 SSH 來 scp、rsync 檔案的問題。
使用 scp、rsync 就會遇到下述錯誤訊息(沒意外的話,ssh 登入應該也會遇到)
- /home/user/.ssh/config line 3: Unsupported option "rsaauthentication"
閱讀全文〈SSH config 遇到 Unsupported option "rsaauthentication" 解法〉
為何 SSH 預設使用 22 Port 的故事
SSH 為何是使用 22 Port 呢? SSH.com 把當初的由來故事說出來囉~ 有興趣可以去參考看看~
SSH 透過 ControlMaster 共享 已連接 的資源來快速連線
SSH (OpenSSH) 每次連線都會跑一些加解密、認證等等的機制,兩邊都有 Auth key 也是一樣,想要讓再次連線的速度更快,可以怎麼做呢?
SSH 可以透過使用 ControlMaster 來共享已經連線的資源,而且可以減少 TCP/IP 的數量,可以節省更多的資源
快速複製 SSH Public Key 到遠端機器
SSH 要將 authorized_keys 複製到新的機器, 一般作法如下:
- scp id_rsa.pub new_machine:
- ssh new_machine
- cat id_rsa.pub >> .ssh/authorized_keys
SSH 本身就已經有提供非常方便的 script 來做此事情: ssh-copy-id
- 操作: ssh-copy-id new_machine # 即會將 id_rsa.pub 加到新機器的 authorized_keys 去, 輕鬆快速
Linux SSH 於信任網段 跳過 兩階段認證檢核
Linux SSH 加上 Google 的兩階段認證 可見此篇: Linux SSH 加上 Google 兩階段認證服務檢核
不過於 內部網路 或者 確定信任的網段, 希望可以忽略掉 兩階段認證的檢核, 要怎麼忽略此檢查?
Linux SSH 加上 Google 兩階段認證服務檢核
Linux 的 SSH (OpenSSH) 想要使用 Google 的兩階段認證來確保登入安全, 要如何設定?
- 註1: 登入時, 除了自己的密碼外, 另外需要輸入每分鐘會改變的驗證碼 (若有 Key 就不需要)
- 註2: 不知道兩階段認證是什麼, 可以參考此篇文章: 如何啟用 Google 兩階段驗證密碼 與 問題解決
使用 Parallel SSH 管理、同時對多台機器執行命令
當機器越來越多, 要同時執行命令, ex: uptime、apt-get update... 等等, 就會很費時, 此時可以使用 pssh (Parallel SSH) 來對多台機器同時下命令~
註: DSH 也可以考慮, 可參考此篇: 管理多台機器的好工具 dsh (分散式 Shell)