기본 방법ssh 명령어의 manpage에서, 아래와 같은 Synopsis를 확인할 수 있다. Show
여기서 맨 윗 줄과 아랫 줄만 빼서 보면 아래와 같이 줄일 수 있다.
즉, 아래와 같은 명령어를 사용하면
한 줄로 여러 개 명령어 원격 실행
명령어를 따옴표로 묶고, 각각의 명령어를 세미콜론( 예시
스크립트로 실행하는 방법별도의 쉘스크립트를 만들고 원격에 스크립트 해석기를 실행시키고 파이프나 리다이렉션으로 보내는 방법
cat test_script.sh | ssh myserver sh 여러 서버에 루프를 돌면서 지정한 스크립트를 실행하는 스크립트
참고 자료
Ubuntu에서 SSH를 이용해서 암호없이 원격 서버의 명령어를 실행하는 방법에 대해 알아보겠습니다. 암호는 우리를 보호해주지만 원격 서버에 연결할 때마다 매번 암호를 입력해야한다면 불편합니다. 로컬서버(출발지)에서 원격서버들(도착지)로 연결하는 형태로 실습을 통해 알아보겠습니다. 실습에서는 원격서버들의 CPU 사용률을 구해보겠습니다.
1) 로컬서버에 SSH Key를 발급합니다. 중간에 설정할 passphrase를 묻는데 빈값으로 비워둡니다. 만약 설정하시면 SSH 연결 시 개인키 잠금을 풀 암호 입력을 요구하게됩니다. (로그인 상태에서 이 키의 잠금을 자동으로 해제하도록 설정할 수 있습니다.) Generating public/private rsa key pair. Enter file in which to save the key (/home/user1/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user1/.ssh/id_rsa. Your public key has been saved in /home/user1/.ssh/id_rsa.pub. ssh-rsa AAAAB3NzaC1yc2EAAAXXXXXXXXXXXXXXXXXX user1@user1-MYSERVER01 2) 원격서버들을 구성하고 위에서 발급한 SSH 공개키를 복사합니다. 실습은 도커 Ubuntu 컨테이너를 활용하여 9001번 포트를 연결하고 openssh를 설치합니다. $ sudo docker pull ubuntu:bionic $ sudo docker run --name ubuntu01 -it -p 9001:22 ubuntu:bionic bash $ apt-get update $ apt-get install -y openssh-server $ mkdir /var/run/sshd 원격으로 연결할 user2 계정을 만들고 해당 계정으로 전환합니다. $ adduser user2 $ su - user2 홈폴더에 .ssh 디렉토리를 만들고 SSH 공개키를 복사하여 authorized_keys 파일에 추가합니다. $ mkdir .ssh $ echo 'ssh-rsa AAAAB3NzaC1yc2EAAAXXXXXXXXXXXXXXXXXX user1@user1-MYSERVER01' >> ~/.ssh/authorized_keys $ exit 3) 로컬서버에서 ssh 이용해서 원격서버에 원격 명령어를 호출합니다. [사용법] ssh -p 포트번호 아이디@아이피주소 $ ssh -p 9001 "top -b -d1 -n1|grep -i 'Cpu(s)'|head -c21|cut -d ' ' -f3|cut -d '%' -f1" // [결과] 2.8 원격서버의 CPU 사용률이 2.8%로 나옵니다. 이상 SSH와 공개키 개인키를 이용해서 암호없이 원격 서버의 명령어를 실행하는 방법에 대해 알아보겠습니다. 끝. SSH(Secure SHell)
명령어ssh [원격 계정]@[원격 ip] -p [변경할 포트] 옵션
사용 예
more
참고
|