암호가 필요 없는 원격 로그인 명령을 사용하면 한 시스템이 다른 클러스터의 시스템에 액세스할 수 있습니다. 따라서 달성하기 위한 몇 가지 중요한 단계가 있습니다.
shh 사용 방법 알아보기
비밀번호 없는 로그인 달성
셸 프로그램 작성
비대칭 암호화 기술 암호화와 복호화에 서로 다른 키를 사용하는 암호화 방법입니다. 그 중 RSA와 DSA는 비대칭 암호화 방식이다. 물론 비대칭 암호화 알고리즘에는 전제가 있습니다. 즉, 서로 암호화하고 복호화할 수 있는 키 쌍이 있다는 것입니다. 일반적으로 이 키 쌍이 소유자의 공개 키와 개인 키가 됩니다. 공개키는 타인이 알 수 있는 키이고, 개인키는 소유자만이 알 수 있는 키입니다. 물론, 개인키가 외부인에게 유출될 경우 정보보안 문제가 발생할 수 있습니다.
가정: A가 암호화된 데이터를 B에게 보내고 싶어합니다. 첫 번째 방법은 A가 자신의 개인 키를 사용하여 암호화하고, B는 데이터를 얻은 후 A의 공개 키를 사용하여 복호화하는 것입니다. 두 번째 방법은 A가 B의 공개 키를 사용하여 데이터를 암호화하고, B가 자신의 개인 키를 사용하여 데이터를 얻은 후 복호화하는 것입니다.
SSH 원격 로그인은 첫 번째 방법을 사용합니다.
일반적으로 사용되는 방법은
ssh -i [개인 키 파일 이름] -p [포트 번호] user@hostname [실행된 명령]
개인 키 파일 이름은 기본적으로 $HOME입니다. /.ssh/id_rsa 또는 $HOME/.ssh/id_dsa, 포트 번호의 기본값은 22입니다.
예:
ssh myname@128.180.146.89 #输入目标主机的密码后进行远程操作,exit命令退出
ssh-keygen #直接全部回车,先都默认
그러면 $에 있을 것입니다. HOME/.ssh/ 디렉터리에 키 쌍 파일이 생성되는데, 여기서 *.pub는 공개 키 파일로 통합되고, 다른 하나는 개인 키 파일입니다.
다음으로 공개 키 파일의 내용을 대상 호스트 사용자의 $HOME/.ssh/authorized_keys에 복사합니다. 복사 방법은 직접 수동으로 조작할 수 있습니다. 다음 명령을 사용하여
ssh-copy-id -i [공개 키 파일 이름] user$hostname
을 달성할 수도 있습니다. 예:
ssh-copy-id -i $HOME/.ssh/id_rsa.pub myname@128.180.146.89
그런 다음 원격 로그인 명령을 실행하여 비밀번호 없는 로그인을 달성합니다. 두 번째 로그인에도 비밀번호가 필요한 경우 파일 및 파일 디렉터리 권한 문제가 원인일 수 있습니다. 연결된 개인키와 공개키가 쌍이 아니기 때문일 수도 있습니다.
sshtest.sh 파일:
#!/bin/bash func___setenv(){ RTS_ECT_DIR="$HOME" #..... } ###################################### # # 程序主体 ###################################### #调用环境变量 func___setenv #读取机器连接信息 while read line do ssh_cmd= ssh_linkhost=`echo ${line}` while read cmdline do #空命令行跳过 if [ -z "$cmdline" ]; then continue fi #读取的命令行拼接; if [ ! -n "$ssh_cmd" ]; then ssh_cmd=`echo ${$cmdline}` ; else ssh_cmd="${ssh_cmd};"`echo ${$cmdline}` ; fi done <${RTS_ECT_DIR}/sshcmd.cfg #执行远程命令 ssh $ssh_linkhost $ssh_cmd </dev/null done <${RTS_ECT_DIR}/sshlink.cfg
sshlink.cfg 파일: 비밀번호 없이 로그인하려면 먼저 키를 구성해야 합니다.
myname@128.180.146.89 myName@128.180.146.90 Myname@128.180.146.91
sshcmd.cfg 파일: 귀하의 지침에 따라 입력하세요. own need
ps -ef|grep java df -h
위 코드의 두 번째 줄이
ssh $ssh_linkhost $ssh_cmd
로 변경되면 while 루프는 한 번만 반복됩니다. while 읽기 라인은 루프 정보를 표준 입력에 넣고 ssh 명령은 모든 입력 버퍼를 읽으므로 while은 루프에 포함되지 않습니다. 따라서 ssh 명령을 리디렉션해야 합니다
위 내용은 ssh 명령을 사용하여 Linux Shell에서 분산 클러스터 정보를 계산하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!