Заставьте Vim сохранить пароль при удаленном редактировании нескольких файлов - PullRequest
0 голосов
/ 30 октября 2019

Предположим, у вас есть рабочая станция, подключите ее к удаленному серверу и отредактируйте в ней некоторые файлы, например

workstation $ ssh sarah@192.0.0.100     # Log into the remote server
Password: MyPassw0rd!
server $ ls  /home/sarah/recipes/       # Files you want to edit
applePie.txt    bananaCake.txt
server $ vi  /home/sarah/recipes/       # Open this directory and edit the files in it
...
:x
server $ logout                         # Log out and come back to the workstation

Теперь вы хотите использовать Vim / Neovim на своемсобственная рабочая станция.

workstation $ vim scp://sarah@192.0.0.100://home/sarah/recipes/
sarah@192.0.0.100's password: MyPassw0rd!

Проблема в том, что каждый раз, когда вы открываете файлы на этом сервере, вы должны снова вводить один и тот же пароль. Есть ли способ сохранить этот сеанс SSH живым, пока Vim / Neovim редактирует файлы на том же удаленном сервере?

1 Ответ

3 голосов
/ 31 октября 2019

Netrw, инструмент для загрузки и сохранения удаленных файлов, запрашивает только пароли для учетных записей FTP. На самом деле вы видите приглашение scp, которое в рамках OpenSSH будет запрашивать только пароли от TTY.

Поскольку вы вводите свой пароль непосредственно в scp, а вызываемый процесс scp нежить не более чем эфемерно, нет способа кешировать ваш пароль. Даже если Netrw запросил ваш пароль, scp не предоставляет способа неинтерактивного чтения паролей, поэтому Netrw не может его кешировать и передавать.

Вам понадобится использовать ключи SSH, если вы этого не сделаетене хочу вводить пароль каждый раз. Чтобы облегчить бремя настройки, вы можете использовать ssh-copy-id для однократного копирования ключей в удаленную систему, а затем использовать Vim как обычно без запроса пароля.

...