[개요]
서버끼리 원격으로 쉘 명령을 내린다거나 할때
암튼 외부에서 서버에 접근해서 뭔가 명령을 내리고 결과를 리턴받고 싶을 때 !
rsh 라는 고마운 방법이 있습니다.
<root 계정으로 로그인할 때 알아두면 좋은 TIP ! >
* 주의 : root 계정 로그인 시 su 라는 명령 사용들 하실탠데요
" su " 랑 " su - " 랑은 차이가 있다고 합니다.
그냥 su 로 root 로그인을 하게되면, 사용자설정(path 등)을 가져올 수 없다고해요~
그래서 일반적으로 서비스에 등록된 명령들 있죠 ?
mysqld start 이런식으로.. 명령 때리고 싶을 때 command not found 라고 나옵니다.
고로 root 권한 로그인시에는 su - 명령을 사용하는게 여러모로 편리하다는 사실 !
1. 설치 ( root 계정으로~! )
# yum install rsh*
2. 설치 확인
# rpm -qa | grep rsh
rsh-server-0.17-38.el5
rsh-0.17-38.el5
3. 설정
3-1. rlogin 활성화
#vi /etc/xinetd.d/rlogin
-------------------------------------------------------------------
# default: on
# description: rlogind is the server for the rlogin(1) program. The server \
# provides a remote login facility with authentication based on \
# privileged port numbers from trusted hosts.
service login
{
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rlogind
disable = no
}
--------------------------------------------------------------------
3-2. xinetd 재시작
# service xinetd restart
xinetd 를 정지 중: [ OK ]
xinetd (을)를 시작 중: [ OK ]
3-3. .rhosts 파일 생성
# cd ~ /- 자신의 홈디렉토리로 이동 *-
# pwd /- 자신의 디렉토리 위치 확인 *-
/root
# vi .rhosts /- 새로 .rhosts 파일을 만든다. *-
xxx.xxx.xxx.xxx 원격로그인을 허용할 IP주소를 작성한다.
# chmod 600 .rhosts /- 보안상 안전을 위해 퍼미션 설정 *-
# ls -al .rhosts
-rw------- 1 root root 15 9월 28 16:46 .rhosts
# vi /etc/hosts.equiv
xxx.xxx.xxx.xxx 원격로그인을 허용할 IP주소를 작성한다.
# chkconfig --level 35 rsh on
# chkconfig --level 35 rlogin on
# chkconfig --list | grep rlogin /- 활성화 확인 *-
rlogin: 활성
# chkconfig --list | grep rsh /- 활성화 확인 *-
rsh: 활성
# vi /etc/pam.d/rlogin /- 로긴인증파일 수정 *-
----------------------------------------------------------------
#%PAM-1.0
# For root login to succeed here with pam_securetty, "rlogin" must be
# listed in /etc/securetty.
auth sufficient pam_nologin.so
auth sufficient pam_securetty.so
auth sufficient pam_env.so
auth sufficient pam_rhosts_auth.so
auth include system-auth
account include system-auth
password include system-auth
session optional pam_keyinit.so force revoke
session include system-auth
-----------------------------------------------------------
# vi /etc/pam.d/rsh
---------------------------------------------------------
#%PAM-1.0
# For root login to succeed here with pam_securetty, "rsh" must be
# listed in /etc/securetty.
auth sufficient pam_nologin.so
auth sufficient pam_securetty.so
auth sufficient pam_env.so
auth required pam_rhosts_auth.so
account include system-auth
session optional pam_keyinit.so force revoke
session include system-auth
--------------------------------------------------------------
# vi /etc/securetty /- 파일이 없으면 만들어주며 아래 같이 작업 *-
console
vc/1
(중간생략)
tty10
tty11
rsh
rlogin
/- 마지막 라인에 rsh, rlogin 추가 *-
4 실행
- rlogin 원격서버로 암호 없이 로그인 하기 (외부에서 지금 rsh 를 설치한 서버로 원격 로그인을 시도해보자)
# rsh 000.000.000.000 /- 원격 서버로 접속 확인 *-
# ifconfig eth1 /- 원격 서버의 IP 확인 *-
# exit /- 원격 서버에서 나가기 *-
+ 추가적으루 ~~~~~~~~~~~~~~~~~~~~
A 서버에서 B 서버로 원격 명령을 실행할 때
예를들어 A에서 B의 톰캣을 내리고 올리고 싶을 때
rsh B_HOST 'source .bash_profile;cd /home/service/tomcat/bin;./shutdown.sh;sleep 1;./rm-cache.sh;sleep 1;./startup.sh';
의 내용으로 b_restart.sh 를 작성하고 실행하게 되면 ~ A서버에서 B서버의 톰캣을 재시작 할 수 있게 된다 ^^
댓글
댓글 쓰기