2

Мой руководитель дал мне удаленный доступ к своему компьютеру, войдя в систему через ssh на моем локальном компьютере. Хотя я подключен (и могу просматривать любые файлы через vi, emacs), как я могу копировать файлы на свой локальный компьютер без пароля?

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

2 ответа2

1

Если у вас есть активная оболочка на удаленном компьютере, и предполагается, что эмулятор терминала поддерживает копирование-вставку (что делают все популярные), вы сможете копировать-вставлять открытый ключ после генерации; что-то вроде tee >> ~/.ssh/authorized_keys , с последующим вставлением содержимого файла открытого ключа, будет служить. Вы хотели бы убедиться, что в результате нет посторонних разрывов строк.

Предоставляя этот ответ, я, конечно, предполагаю, что вы проконсультировались со своим руководителем и получили разрешение на внесение этих изменений. В противном случае это в лучшем случае поставит вашу работу на чрезвычайно оправданный риск; ненадежный сотрудник хуже, чем никто, и, честно говоря, если бы вы сделали это с моей учетной записью, а я заранее не согласился, я уволил бы вас на месте.

1

SSH позволяет запускать команды в удаленной системе. Без указания каких-либо команд создается pty и запускается оболочка, что, вероятно, является единственным способом, которым вы ее вызываете.

Если вы хотите запустить cat для отображения файла вместо запуска оболочки, просто запустите:

ssh remote_host cat /remote/file/to/view

Это отобразит удаленный файл и вернет вас в приглашение локальной оболочки.

Если вы хотите сохранить этот файл, просто перенаправьте вывод в локальный файл, который вы хотите сохранить как:

ssh remote_host cat /remote/file/to/view > local/file/to/create

Если вы хотите скопировать весь каталог, вы можете передать вывод tar через сеанс ssh:

ssh remote_host tar cf - /dir/to/copy | tar xvf -

Локальный процесс tar (тот, который извлекает архив) удалит начало / выключение, если вы указали абсолютный путь в удаленном процессе, как в примере выше. В этом примере будет создана иерархия папок dir / to / copy в текущем каталоге вашего локального хоста. Если вы хотите удалить дополнительные компоненты пути, используйте параметр --strip-components .

Кроме того, если вы хотите подключиться к хосту и отредактировать файл в vi за один шаг, вы должны указать ssh создать pty для вас, используя опцию -t :

ssh -t remote_host vi file/to/edit

Если он вызывается в интерактивном режиме (команда не указана, поэтому он запускает оболочку), он достаточно умен, чтобы создать pty по умолчанию. С помощью указанной команды вы должны явно указать ей создание pty.

Смотрите страницу ssh для более подробной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .