Не могу войти в удаленную систему Debian с ключом RSA и ssh.exe из Cygwin

Я понятия не имею, почему первое решение в вашем вопросе не сработало. Могу только предположить, что вы забыли удалить echo . Как бы то ни было, вот еще один подход, который также должен делать то, что вам нужно, если вы используете bash :

shopt -s globstar
for i in **/*jpg; do mv "$i" "${i//\//_}"; done

Объяснение

  • Включается shopt -s globstar Функция bash globstar , которая заставляет ** рекурсивно соответствовать любому количеству каталогов или файлов.
  • для i в ** / * jpg; будет перебирать все файлы (или каталоги), имена которых оканчиваются на .jpg , сохраняя каждый как $ i .
  • «$ {i // \ // _}» - это имя текущего файла (или каталога), в котором все экземпляры / заменены на _ .

Если у вас также могут быть каталоги с именами, заканчивающимися на .jpg , и вы хотите их пропустить, сделайте это вместо этого:

shopt -s globstar
for i in **/*jpg; do [ -f "$i" ] && echo mv "$i" "${i//\//_}"; done

И для всех файлов, независимо от расширения:

shopt -s globstar
for i in **/*; do [ -f "$i" ] && echo mv "$i" "${i//\//_}"; done
2
11.08.2013, 02:04
1 ответ

К какой папке .ssh вы не можете получить доступ? (Из Cygwin вы не сможете увидеть ее на Ubuntu, однако вы должны быть в состоянии увидеть ее на Ubuntu, из Ubuntu, если она находится именно там). Если вы сгенерировали RSA-ключ с помощью puttygen, он не будет работать с ssh.exe от Cygwin, потому что они используют разные форматы для файла ключа (putty использует файл с расширением .ppk, который имеет другой формат).

Вы можете загрузить этот ppk файл в puttygen, а затем использовать Преобразования -> Экспорт ключа OpenSSH, чтобы сохранить его в правильном формате, который может использовать ssh.exe. Если вы хотите загрузить этот файл ключа в Cygwin с диска Windows, вы можете использовать каталог /cygdrive, чтобы получить доступ к диску C: (или другому диску), на котором находится ключ. Затем вы можете использовать команду -i, чтобы указать ssh на него. Другая альтернатива - использовать ssh-keygen для генерации нового ключа для Cygwin и добавить его в папку authorized_keys Ubuntu.

Также Cygwin ssh по умолчанию использует имя пользователя, с которым вы вошли в windows, в качестве имени пользователя удаленного хоста, если вы не укажете его в аргументах команды ssh.

Если это все еще не работает, я бы проверил, что делает ssh, добавив -vvv к аргументам команды.

ssh -vvvv -i /cygdrive/c/path/to/my/id_dsa -l username host.address.here

(очевидно, заменив правильные аргументы для -i -l и host.address.here).

0
29.04.2021, 00:47

Теги

Похожие вопросы