다음을 사용하여 일부 컴퓨터에 로그인할 때SSH나는 내별칭그리고기능거기 있어요. 즉, 어떤 컴퓨터에 로그인하여 명령 단축키를 사용할 수 있기를 바랍니다.
동적이어야 합니다. 로그인할 때마다 별칭을 업데이트했으면 좋겠습니다.
참고: 기계와 파일을 모르고 처음 로그인하는 경우가 많습니다. 단일 로그인인 경우도 있습니다. 해당 컴퓨터에서는 한 번만 가능합니다. 나중에 청소해야 하며 이전 구성도 복원해야 합니다.
답변1
.bashrc
다른 이름으로 원격 컴퓨터에 임시로 복사할 수 있습니다 . 예를 들어 다음을 사용합니다 .bashrc_temp
.
user@local$ scp .bashrc user@remote:~/.bashrc_temp
그런 다음 원격 시스템에 로그인할 수 있습니다.
user@local$ ssh user@remote
그리고source
파일 .bashrc_temp
:
user@remote$ source ~/.bashrc_temp
이제 귀하 .bashrc
와 귀하의 기능을 사용할 수 있습니다. 작업이 끝나면 원격 시스템에서 ~/.bashrc_temp 파일을 제거하고 로그아웃할 수 있습니다.
bash 기능을 사용하면 파일을 복사하고 원격 시스템에 로그인할 수 있습니다.
# copy the .bashrc to the remote machine
# and log into the remote machine.
# parameter $1: user@remote
function s() {
scp ~/.bashrc $1:~/.bashrc_temp
ssh $1
}
업데이트:
원격 시스템 및 소스에 복사하는 .bashrc
것을 고려할 수도 있습니다 ./tmp
/tmp/.bashrc_temp
업데이트 2:
다음을 사용하여 원격 시스템에 로그인할 수 있습니다.SSH -t. 그러면 자동으로 임시가 사용됩니다 .bashrc
. 업데이트된 기능 s()
:
function s() {
scp ~/.bashrc $1:/tmp/.bashrc_temp
ssh -t $1 "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}
답변2
나는 sshrc가 당신이 찾고 있는 것이라고 생각합니다. https://github.com/Russell91/sshrc
sshrc는 ssh와 동일하게 작동하지만 원격으로 로그인한 후 ~/.sshrc를 소스로 제공합니다.
$ echo "echo welcome" > ~/.sshrc
$ sshrc me@myserver
welcome
$ echo "alias ..='cd ..'" > ~/.sshrc
$ sshrc me@myserver
$ type ..
.. is aliased to `cd ..'
이를 사용하여 환경 변수를 설정하고, 기능을 정의하고, 로그인 후 명령을 실행할 수 있습니다. 매우 간단하며 서버의 다른 사용자가 sshrc를 사용하더라도 영향을 미치지 않습니다. 고급 구성을 보려면 계속 읽으세요.
답변3
jens-na가 훌륭한 답변을 제공했습니다. 조금 더 나은 작업을 위해 약간의 시간을 투자하고 다시 작업했습니다. 이렇게 하면 포트 번호와 같은 매개변수를 SSH에 전달할 수 있습니다. 차이점은 다른 명령 매개변수 이름을 사용하는 대신 ssh
명령을 사용하여 파일을 업로드한다는 것입니다..bashrc
scp
또한 다른 파일을 업로드하므로 .bashrc_remote
모든 것이 아닌 원격 서버에서 소스로 원하는 것을 정확하게 선택할 수 있습니다.
sshs() {
ssh $@ "cat > /tmp/.bashrc_temp" < ~/.bashrc_remote
ssh -t $@ "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}
다음과 같이 실행하세요:
sshs user@server
' '라는 이름 sshs
은 "SSH 소스"를 나타냅니다. ssh
소스를 원하지 않을 때 사용 하고 sshs
소스가 필요할 때 사용하세요.
답변4
이것이 내가 생각해 낸 것입니다. 이를 통해 일반 rc 파일을 유지할 수 있을 뿐만 아니라 하나의 SSH 연결에서 모든 작업을 수행할 수도 있습니다(즉, scp를 먼저 수행하는 대신 한 번만 로그인하면 됩니다).
#copies some environment over to the remote machine
function ssh() {
/usr/bin/ssh -t $* "echo `base64 -i ~/bin/remote_ssh_env.sh` | base64 --decode > /tmp/remote_ssh_env.sh; bash --rcfile /tmp/remote_ssh_env.sh"
}
하지만 rc 파일이 어느 시점에 최대치를 초과할 수 있으므로 얼마나 클 수 있는지 잘 모르겠습니다.