[리눅스]remote shell 사용방법과 설정하는법에 대한 질문
글쓴이: dogspy / 작성시간: 금, 2005/08/12 - 2:50오후
음.. 저희가 하려는 것은요~
다른 컴퓨터의 프로세스나 cpu 관련 값들을 긁어와서 db에 저장하려는 거거든요.
그런데 다른 컴퓨터의 ps 값 같은 것을 가져오려면 어떻게 해야 하는지 모르겠어요.
어떤 분이 rsh 를 사용하라고 하는데 찾아봐도 어떻게 하라는 건지 이해가 안되요.
우선 두 컴퓨터 상에
/etc 에 hosts , hosts.allow, hosts.deny 파일은 있는데
hosts 란 파일에만
127.0.0.1 localhost.localdomain localhost
라고 써있어요.
그리고 두 컴퓨터 모두
# rsh localhost
라고 치면 password 를 넣고 로그인이 됩니다.
그런데 rsh localhost ls 라고 치면
permision denied
라고 나와요
뿐만이 아니라 한 컴퓨터에서 다른 컴퓨터로는 rsh 를 어떻게 해야 하나요?
그리고 ssh 와 rsh 가 어떻게 다른 건가요?
지금 저희가 하려는 것이 ssh 로도 되는건가요?
그리고 왠만하면 접속시 password 치는 것도 없애고 싶은데 어떻게 하면 되나요?
Forums:
* snmp를 원격지에 대해서 값을 가져오게 실행하면 되지 않을까요?
* snmp를 원격지에 대해서 값을 가져오게 실행하면 되지 않을까요?
rsh은 UDP위에 RPC를 만들고, RPC데몬과 인터페이싱하는 라이브러
rsh은 UDP위에 RPC를 만들고, RPC데몬과 인터페이싱하는 라이브러리를 이용해서 개발한 것입니다.(nfs도 마찬가지.)
따라서, rsh, nfs등을 돌리려면, rpc데몬, portmapper(이름이 약간 틀릴 수도..)가 필수적으로 먼저 구동되어 있어야 합니다(ps로 확인..)
그 후 nfs가 돈다면 rsh은 당근으로 돌겠지요.
펄로 만드시면 쉽지 않을까 싶네요.원격지 서버에는 여러가지 상태값
펄로 만드시면 쉽지 않을까 싶네요.
원격지 서버에는 여러가지 상태값을 뿌리는 쉘스크립을 미리 하나 만들어놓으시구요.. (간단한건 그냥 명령어로 해도 되구요)
로컬에는 ssh로 로긴해서 거기의 쉘스크립을 실행하여 결과를 받아와서 DB에 저장하는 펄스크립을 만들어놓으시고 cron에서 정기적으로 실행하세요.
더 쉬운것은 아예 원격서버에 펄 스크립을 두어서 이쪽 DB로 정기적으로 insert하는게 ssh 접속 처리 부분이 필요없으니 더 낫겠지요..
이를테면, 아래는 서버 A에서 서버 B로 정기적으로 ssh 접속하여 상태를 확인하여 결과를 받아온 후 이메일로 보내주는 스크립니다.
'dogspy'님께서 원하시는 것을 하는 방법은 두 가지가 있습니다.
'dogspy'님께서 원하시는 것을 하는 방법은 두 가지가 있습니다.
님이 말씀하신 'rsh'와 'ssh'를 이용하는 방법입니다.
먼저, rsh는 보안에 매우 취약하다는 맹점이 있습니다.
따라서 rsh는 돼도록 사용하지 않으셨으면 합니다. 단, rsh로 통신을 하려는 컴퓨터가 내부네트웍으로 되어 있다든지, 아니면 강력한 방화벽으로 둘러싸여 있다면 사용할 수도 있겠습니다만...
대신 ssh는 잘 아시는 바와 같이 안전하다는 장점이 있습니다.
A컴퓨터(계정명:acom, IP:192.168.1.1))에서 B컴퓨터(IP:192.168.1.2)에 계정명과 암호를 넣는 과정을 생략하고, B컴퓨터에 있는 계정명 bcom의 홈디렉토리를 리스팅하는 과정에 대해 말씀드리겠습니다.
<rsh 사용시>
1. B컴퓨터의 bcom의 홈디렉토리에 .rhosts(숨김파일입니다)를 만듭니다.
2. B컴퓨터의 bcom홈디렉토리에 만들어진 .rhosts내에 다음과 같은 순서로
내용을 적어줍니다.
# vi .rhosts
<A컴퓨터의 IP 또는 full hostname> <A컴퓨터에서 B컴퓨터로 rsh를 사용하여 접속 할 때 쓰일 사용자계정>
예를 들면, B컴퓨터의 bcom홈디렉토리에 있는 .rhosts파일에는 다음과 같은 내용이 들어가 있어야 합니다.
# cat .rhosts
192.168.1.1 acom
3. 이렇게 생성된 B컴퓨터의 bcom홈디렉토리에 있는 .rhosts파일의 퍼미션을 다음과 같이 줍니다.
# chmod 600 .rhosts
4. 그리고 나서 A컴퓨터에 acom이라는 계정으로 로그인을 하고, B컴퓨터로 다음과 같이 명령어를 주면 됩니다.
# rsh 192.168.1.2 ls
또는
# rsh -l bcom 192.168.1.2 ls
그러면, B컴퓨터의 bcom계정의 홈디렉토리의 파일이름과 디렉토리 이름등을 볼 수 있습니다.
맨 끝에 있는 ls 대시 ps waux등을 쓰시면, A컴퓨터에서 B컴퓨터에 로그인 과정없이 ps결과를 볼 수 있습니다.
<ssh 사용시>
이 부분은 '리눅스 서버 관리 Hacks 100, 한빛미디어, Rob Flickenger 저'를 보시면 상세하고 쉽게 나와 있습니다.
지금 책이 옆에 없는 관계로 이 부분에 대해서는 상세하게 알려드리지는 못 하겠습니다.
저도 그 책을 보고 해봤기 때문에 님이 원하시는 것을 할 수 있을겁니다.
되도록이면, ssh를 사용하실 것을 권합니다.
그럼 도움이 되셨길 바랍니다.
Astronomy+Linux
댓글 달기