ssh 원 격 실행 명령 방법 과 Shell 스 크 립 트 인 스 턴 스

이 블 로 그 를 쓰기 전에 저 는 구 글 에 관련 글 을 한 무더기 썼 습 니 다.대부분 수정/etc/sudoers,그리고 NOPASSWD:지정 한 cmd,하지만 정말 쓸모 가 없습니다.원 격 가상 단말기 가 없 는 이 방법 은 바로 뜬구름 입 니 다.ubuntu 10.04 server 직접 테스트!
ssh 원 격 조작 실행
명령 형식

ssh -p $port $user@$p 'cmd' 
 
$port : ssh  
$user: ssh  
$ip:ssh ip  
cmd:  
준비 작업
공개 키 인증 이나 사용자 이름 암호 인증 을 바탕 으로 원 격 local 2 서버 에 로그 인 할 수 있 습 니 다.
cmd 스 크 립 트 라면 절대 경로 문제 에 주의 하 십시오.(상대 경 로 는 원 격 으로 실 행 될 때 구덩이 입 니 다)
모자라다
이 명령 은 우리 의 대부분의 수 요 를 만족 시 킬 수 있 지만,일반적으로 많은 것 을 운송 하고 배치 할 때 루트 권한 이 필요 하지만,몇 가지 제한 이 있 습 니 다.
원 격 서버 local 2 루트 사용자 로그 인 금지
원 격 서버 스 크 립 트 에서 신분 을 바 꾸 려 면 expect 로 send 비밀 번 호 를 사용 해 야 합 니 다.안전 하지 않 습 니 다.
ssh 의-t 인자

-t      Force pseudo-tty allocation.  This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services.  Multiple -t options force tty allocation, even if ssh has no local tty. 
원 격 서버 의 가상 tty 단말 기 를 제공 할 수 있 습 니 다.이 매개 변 수 를 더 하면 원 격 서버 의 가상 단말기 에 자신의 권한 부여 비밀 번 호 를 입력 할 수 있 습 니 다.매우 안전 합 니 다.
명령 형식

ssh -t -p $port $user@$ip  'cmd' 
예제 스 크 립 트

#!/bin/bash 
 
#  
ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3") 
user="test1" 
remote_cmd="/home/test/1.sh" 
 
# ssh  
for ip in ${ip_array[*]} 
do 
    if [ $ip = "192.168.1.1" ]; then 
        port="7777" 
    else 
        port="22" 
    fi 
    ssh -t -p $port $user@$ip "remote_cmd" 
done 
이 방법 은 매우 편리 합 니 다.-t 원 격 서버 의 단말 기 를 가상 하여 여러 대의 서버 를 동시에 배치 할 때 많은 시간 을 절약 하 였 습 니 다!

좋은 웹페이지 즐겨찾기