원격 서버에서 여러 파일을 편집하고 있습니다. SSH(공개 키 또는 비밀번호)를 사용하여 연결할 수 있습니다. Vim을 사용하는 방법은 다음과 같습니다.
vim scp://user@server//path/to/file.cpp
Vim을 커스터마이즈해서 내 컴퓨터에서 사용해야 하기 때문에 서버에 설치된 Vim을 사용하고 싶지 않습니다.
이 원격 서버에는 아무것도 설치할 수 없습니다. 컴파일하려면 make
.
make
Vim에서 실행하여 서버에서 컴파일할 수 있기를 원합니다 . SSH를 통해 서버에 연결하는 다른 터미널을 열지 않고 싶습니다.
그래서 내 질문은 다음과 같습니다Vim을 통해 SSH 연결을 유지할 수 있나요?
감사해요
답변1
물론 최근에 클라이언트에 OpenSSH를 설치했다면 가능합니다. "Control Pipe"가 있고 man ssh_config
표시됩니다.마법. 기본적으로 클라이언트에서는 ~/.ssh/config
다음과 같은 호스트 항목을 생성합니다.
Host my_remote_server # a symbolic name of your choice
Hostname server_IP_or_DNS # the real name
User username # the username you use for login
IdentityFile ~/.ssh/a_suitable_ssh_key_if_any # for authentication purposes
ControlMaster auto
ControlPath ~/.ssh/%C # or ~/.ssh/%h-%p-%r for older versions
ControlPersist 5m # or yes for neverexpiring persistent connection
이렇게 하면 첫 번째 연결에서 지정된 시간 동안 또는 영원히 열려 있는 "채널"이 열립니다. 이제부터 ssh
입력한 이름으로만 연결을 참조 할 수 있습니다 Host
. 예를 들어 다음과 같이 작성하지 마십시오.
vim scp://username@server_IP_or_DNS//full_path/to/file.cpp
당신은 쓸 것입니다 :
vim scp://my_remote_server//full_path/to/file.cpp
또는
ssh my_remote_server
기존 영구 연결을 종료하려면 다음을 실행해야 합니다.
ssh -O exit my_remote_server
이 모든 것은 일반 SSH, SCP 및 SFTP에도 적용됩니다. 그러면 그렇게 해.