위의 문제 중 하나에 직면하고 있습니다.
그것은 ssh user@ip
작동할 수 있지만 그 반대의 경우는 불가능합니다. 실행하면 다음 오류가 발생합니다.ssh ip root
sh: root: not found
그래서 문제가 있는 구문을 사용하는 앱 중 하나가 로그인할 수 없는 것 같습니다.
답변1
이는 ssh user@ip
올바른 구문입니다. 다른 하나는 사용자로 호스트에 로그인하고 ip
이름이 지정된 명령을 실행하려고 시도합니다 root
.
질문을 업데이트하고 실제로 달성하려는 것이 무엇인지 설명하십시오.
답변2
다른 사람들이 말했듯 ssh user@ip
이 이것은 올바른 구문입니다. 사용되는 경우 ssh ip user
"사용자" 부분은 실제로 원격 호스트에서 실행되는 명령입니다.
올바른 구문으로 해당 부분을 억제하면 user@
실제로 로컬 사용자가 원격 호스트로 전달됩니다. 동일한 이름을 가진 사용자가 없거나 원격 호스트에서 비활성화된 사용자인 경우 오류 메시지가 표시됩니다.
이 오류 메시지( )가 말하려는 것은 sh: root: not found
원격 호스트에 루트 명령이 없다는 것입니다.
SSH 소개
ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile]
[-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-Q cipher | cipher-auth | mac | kex | key | protocol-version]
[-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]
관련 정보
- SSH(1)맨페이지
답변3
ssh
by 매뉴얼 페이지를 보면 man ssh
관련 구문을 찾을 수 있습니다.
ssh [...] [-l login_name] [...] [user@]hostname [command]
따라서 명령을 구문 분석할 때 플래그가 없는 첫 번째 매개변수를 호스트 이름으로 처리하고 그 뒤의 매개변수를 원격 실행에 전달되는 명령으로 처리합니다.
귀하의 사건으로 돌아가십시오. 호스트 이름 뒤에 이름을 넣으면 명령으로 처리됩니다. 이것이 바로 이 오류 메시지가 표시되는 이유입니다. root
원격 호스트에서 명령을 찾을 수 없기 때문입니다 .