ssh 서버의 세션 내에서 일부 별칭을 자동으로 정의하는 방법을 찾고 있습니다. 내가 .bashrc
로그인 한 사용자 계정은 다른 사람들과 공유하고 수십 개의 계정이 있으며 모든 컴퓨터에서 스크립트를 유지 관리하는 것이 어려울 수 있기 때문에 서버 의 파일에 파일을 넣을 수 없습니다 . expect
별칭을 자동으로 입력하는 데 사용할 수 있다는 것을 알고 있지만 OpenSSH에 이것을 구현하는 데 사용할 수있는 내장 기능이 있는지 궁금합니다.
답변
기대하는 데 아무런 문제가 없습니다. 내가 한 다른 방법은 스크립트를 사용하여 매우 더럽습니다. 먼저 실행하려는 프로파일을 scp 한 다음 ssh in, run 및 연결 상태를 유지하십시오.
따라서 모든 프로파일 설정을 로컬 파일 .<local username>-<hostname>-init.sh
에 배치하고 아래 스크립트를 실행하여 원격 호스트에 로그인하십시오.
#!/bin/sh
[ $# -eq 0 ] && { echo "syntax: $0 <host> [<ssh-option>...]" 1>&2 ; exit 1 ; }
host=$1 ; shift # use any remaining args as ssh options
initfile=".$USER-`hostname`-init.sh"
scp -q ~/.ssh-init.sh "$host:/var/tmp/$initfile"
ssh -t "$@" $host "bash --rcfile /var/tmp/$initfile"
답변
구성을 입력 .bashrc
하고 로그인 할 때만 구성 할 수 있습니다.이를 가능하게하기 위해 ssh를 통해 환경 변수를 전달할 수 있습니다.
.bashrc
수정
# common stuff
if [ -n "$IAMTHEGREATEST" ]; then
# my personal cool stuff
fi;
# other global stuff
sshd_config
수정 :
AcceptEnv ... IAMTHEGREATEST
.ssh/config
수정 (클라이언트 측) :
Host ...
SendEnv IAMTHEGREATEST
.bashrc
수정 (클라이언트 측) :
alias ssh='IAMTHEGREATEST="forsure" ssh'
(추천하지만해야합니다)
답변
로부터 SSH (1) 당신이 파일을 만들 경우 매뉴얼 페이지 ~ / 스푸핑 / RC를 사용자의 로그인 쉘하여 로그인하기 전에 ‘사전 설정’작업을 할 수있는 기회를 제공, 실행하기 전에 실행됩니다 .. 주어진 예는 로그인하기 전에 네트워크 공유를 마운트하는 것입니다.
개별 ~ / .ssh / rc 파일 을 사용하지 않으려면 / etc / ssh / sshrc로도 동일한 작업을 수행 할 수 있습니다 . 특정 사용자 이름 또는 일부 식별 방법을 확인하기위한 빠른 테스트는 다른 사용자가이를 인식하지 못하도록 제한 할 수 있습니다.
~ / .ssh / rc 가 존재하지 않는 경우에만 / etc / ssh / sshrc 가 소스 되므로 두 계층의 복잡성을 효과적으로 달성 할 수 있습니다.
답변
별명은 쉘에 의해 정의되고 해석됩니다.
불행히도 ssh
그것들을 원격 쉘로 전달할 방법이 없습니다 .
ssh
클라이언트 측에 랩퍼를 작성 하여 원격 측에 멋진 환경을 설정할 수는 있지만 예쁘지 않습니다.
답변
가능하다면 모든 곳에서 액세스 가능한 서버에서 원하는 모든 것을 초기화 / 정의하고 각 서버에서 로그인 한 후 실행하는 작은 스크립트를 저장합니다.
답변
가능한 한 가지 해결책은 모든 다른 서버가 액세스 할 수있는 웹 서버에 모든 것을 설정하는 스크립트를 배치하는 것입니다.
그런 다음 각 서버는 다음과 같은 작업을 수행하기 위해 작은 스크립트가 필요합니다.
wget http://myserver.com/myawesomescript.sh
chmod +x myawesomescript.sh
./myawesomescript.sh
그렇게하면 한 곳에서만 업데이트하면됩니다.
답변
.ssh / config를보십시오
다음은 https://lookherefirst.wordpress.com/2007/12/17/a-simple-ssh-config-file/ 의 예입니다.