feat: Add root/sudo password-free access check for ssh (#9344)

This commit is contained in:
ssongliu 2025-06-30 16:21:30 +08:00 committed by GitHub
parent da117582d6
commit ae19b72e61
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 27 additions and 0 deletions

View file

@ -75,6 +75,14 @@ func (c *SSHClient) SudoHandleCmd() string {
return ""
}
func (c *SSHClient) IsRoot(user string) bool {
if user == "root" {
return true
}
_, err := c.Run("sudo -n true")
return err == nil
}
func (c *SSHClient) Runf(shell string, args ...interface{}) (string, error) {
session, err := c.Client.NewSession()
if err != nil {

View file

@ -3382,6 +3382,8 @@ const message = {
nodeCheck: 'Availability check',
checkSSH: 'Check node SSH connection',
checkUserPermission: 'Check node user permissions',
isNotRoot: 'Detected that password-less sudo is not supported on this node and current user is non-root',
checkLicense: 'Check node license status',
checkService: 'Check existing service information on node',
checkPort: 'Check node port reachability',

View file

@ -3251,6 +3251,9 @@ const message = {
nodeCheck: '可用性チェック',
checkSSH: 'ードSSH接続を確認',
checkUserPermission: 'ノードユーザー権限を確認',
isNotRoot:
'このードではパスワードなしsudoがサポートされておらず現在のユーザーがrootではないことが検出されました',
checkLicense: 'ノードライセンス状態を確認',
checkService: 'ノードの既存サービス情報を確認',
checkPort: 'ノードポート到達性を確認',

View file

@ -3193,6 +3193,9 @@ const message = {
nodeCheck: '가용성 확인',
checkSSH: '노드 SSH 연결 확인',
checkUserPermission: '노드 사용자 권한 확인',
isNotRoot:
' 노드에서 비밀번호 없이 sudo를 사용할 없으며 현재 사용자가 root가 아닌 것으로 감지되었습니다',
checkLicense: '노드 라이선스 상태 확인',
checkService: '노드의 기존 서비스 정보 확인',
checkPort: '노드 포트 접근 가능 여부 확인',

View file

@ -3322,6 +3322,8 @@ const message = {
nodeCheck: 'Semakan ketersediaan',
checkSSH: 'Periksa sambungan SSH nod',
checkUserPermission: 'Semak kebenaran pengguna nod',
isNotRoot: 'Dikesan sudo tanpa kata laluan tidak disokong pada nod ini dan pengguna semasa bukan root',
checkLicense: 'Periksa status lesen nod',
checkService: 'Periksa maklumat perkhidmatan sedia ada pada nod',
checkPort: 'Periksa kebolehcapaian port nod',

View file

@ -3331,6 +3331,8 @@ const message = {
nodeCheck: 'Verificação de disponibilidade',
checkSSH: 'Verificar conexão SSH do ',
checkUserPermission: 'Verificar permissões de usuário do ',
isNotRoot: 'Detectado que sudo sem senha não é suportado neste e o usuário atual não é root',
checkLicense: 'Verificar status da licença do ',
checkService: 'Verificar informações de serviço existentes no ',
checkPort: 'Verificar acessibilidade da porta do ',

View file

@ -3316,6 +3316,9 @@ const message = {
nodeCheck: 'Проверка доступности',
checkSSH: 'Проверить SSH-подключение узла',
checkUserPermission: 'Проверка прав пользователя узла',
isNotRoot:
'Обнаружено, что sudo без пароля не поддерживается на этом узле и текущий пользователь не является root',
checkLicense: 'Проверить статус лицензии узла',
checkService: 'Проверить информацию о существующих службах на узле',
checkPort: 'Проверить доступность порта узла',

View file

@ -3150,6 +3150,8 @@ const message = {
nodeCheck: '可用性檢查',
checkSSH: '檢查節點 SSH 連接',
checkUserPermission: '檢查節點用戶權限',
isNotRoot: '檢測到該節點不支持免密 sudo且當前為非 root 用戶',
checkLicense: '檢查節點許可證狀態',
checkService: '檢查節點已存在服務信息',
checkPort: '檢查節點端口可達',

View file

@ -3120,6 +3120,8 @@ const message = {
nodeCheck: '可用性检查',
checkSSH: '检查节点 SSH 连接',
checkUserPermission: '检查节点用户权限',
isNotRoot: '检查到该节点不支持免密 sudo且当前为非 root 用户',
checkLicense: '检查节点许可证状态',
checkService: '检查节点已存在服务信息',
checkPort: '检查节点端口可达',