원격 서버에 명령어를 사용하는 방법은 ssh 통해 접속 후 명령어를 치거나
ssh {hostname}@{password} "command"를 사용하는 방법이 있다.
하지만 해당 방법을 사용하여 명령어를 쓰면 password를 직접 입력해줘야 해서 shell에서 사용하기 어렵다.
이런 경우 해결 방법이 있다.
1. sudo 명령어가 아닌 경우
sshpass를 사용하면 패스워드를 미리 입력해서 원격 서버 command를 날릴 수 있다.
(sudo apt-get install sshpass 명령어를 치면 설치가 가능하다)
sshpass -p {password} ssh -t {hostname}@{server_ip} "ls"
2. sudo 명령어가 필요한 경우
이 경우는 sshpass + sudo -S 옵션을 사용하면 된다.
(물론 바로 root 계정으로 접속하면 되지만
root 계정으로 접속해서 쓰는 경우는 많이 없는 것 같다)
아래처럼 사용하면 패스워드를 미리 입력한 상태로 command 사용이 가능하다.
sshpass -p {password} ssh -t {hostname}@{server_ip} "echo {remote_server_password} | sudo -S ls /tmp"
'Linux' 카테고리의 다른 글
Bash Script [: missing `]' 오류 해결 방법 (0) | 2023.10.23 |
---|---|
Disk BandWidth, IOPS 측정하는 방법 (0) | 2023.09.13 |
apt-get update 오류(404 Not Found) (0) | 2023.08.22 |
Hyper-v 사용자 로그인 후 멈춤 현상 (0) | 2023.07.03 |
Trouble Shooting(Failed to restart haproxy.service) (0) | 2023.06.08 |