노트북에서 SSH를 통해 집 컴퓨터에 안전하게 연결할 수 있도록 설정했습니다. 오늘은 테스트를 위해 업데이트를 실행해 보았지만 노트북에서는 실행할 수 없었습니다.
내가 기본적으로 하려는 것은 연결을 활성 상태로 유지하지 않고 SSH를 통해 컴퓨터에 명령을 전달하는 것입니다. 무언가를 찾을 수 있는지 알아보기 위해 온라인에서 검색해 보았지만 아무 것도 작동하지 않는 것 같았습니다.
내가 시도한 명령은 다음과 같습니다.
$ ssh myip 'sysupg &'
bash: sysupg: command not found
echo "mypassword" | ssh myip 'sudo -S dnf upgrade -y &'
[sudo] password for myuser:
sudo: no password was provided
sudo: a password is required
echo "mypassword" | ssh myip 'sudo -S -k dnf upgrade -y &'
[sudo] password for myuser:
sudo: no password was provided
sudo: a password is required
내 비밀번호( )를 묻는 경우 [sudo] password for myuser:
아무 것도 입력할 수 없으며 계속 진행되어 마지막 두 가지 sudo
오류가 발생합니다.
전체적으로 :sudo
ssh
다른 머신에 전달해야 하는 명령을 전달하고 , 명령을 전달한 후 즉시 연결을 "자동으로" 닫고, 가능하면 x분 이내에 명령을 실행합니다.
답변1
가능한 방법:
ssh -t myip 'sudo -b dnf upgrade -y >/tmp/aa 2>&1'
1>
연결 해제 및2>
리디렉션 시 작업을 실행하려고 합니다.- 작업을 백그라운드에서 실행하려면
sudo -b
이 옵션을 사용하세요. - 대화형 기능
ssh
을 제공하고 싶습니다sudo
.ssh -t
가능하지만 권장되지 않는 다른 방법:
echo PASSWORD | ssh myip 'sudo -S -b dnf upgrade -y >/tmp/aa 2>&1'
sudo
표준 입력에서 비밀번호를 읽으 려면sudo -S
대신 옵션을 사용하십시오.ssh -t
- 명령 기록에 일반 텍스트 비밀번호가 있는 것은 잘못되었습니다.
이 옵션은 백그라운드에서 실행할 비밀번호를 묻는 메시지를 표시하고 원하는 유일한 작업이 아니기 sudo -b
때문에 해당 옵션을 놓쳤습니다 .&
또한 손실 1>
또는 2>
리디렉션으로 인해 SSH 연결이 유지됩니다.
그러나 다음 을 사용하면 PubkeyAuthentication
안전한 접근 방식이 됩니다 .
ssh root@myip 'dnf upgrade -y >/tmp/aa 2>&1 &'
- 설정
PermitRootLogin prohibit-password
하다sshd_conf
- 공개 키를 다음 위치에 복사하세요.
/root/.ssh/authorized_keys
- 개인키 비밀번호를 항상 보호하고 사용하세요.
ssh-agent
screen
그러나 가장 좋은 방법은 서버 측에서 사용하는 것입니다.
ssh -t myip screen -RD
sudo -s
...whatever...
Ctrl-A d (detach and disconnect)
나중에 세션을 다시 연결합니다.
ssh -t myip screen -RD
- 당신은 당신의 요구 사항을 충족
- 세션을 다시 연결합니다.
- 화면을 배우세요