LINUX.ORG.RU

[ssh] Хочу использовать пароль в открытом виде

 


0

0

В винде можно написать так:

plink -pw password login@host ls

В родном юниксовом ssh ключика -pw почему-то нет. Этот недостаток надо устранить.

PS: И да, id_rsa.pub я на удаленный сервер залил и добавил в trusted-лист, грамотеям просьба не возбуждаться.

★★★

Вот фрагмент конфигурации сервера. Никаких вариантов кроме указания пароля в параметрах ssh я не вижу.

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile     .ssh/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

Absurd ★★★
() автор топика

>И да, id_rsa.pub я на удаленный сервер залил и добавил в trusted-лист, грамотеям просьба не возбуждаться.

Жалко :)

KRoN73 ★★★★★
()

> В родном юниксовом ssh ключика -pw почему-то нет. Этот недостаток надо устранить.

В unix-овом это было-бы дыркой в безопасности, посему и нету.

vnovouhov
()
Ответ на: комментарий от vnovouhov

>> В родном юниксовом ssh ключика -pw почему-то нет. Этот недостаток надо устранить.

>В unix-овом это было-бы дыркой в безопасности, посему и нету.

Меня это не волнует - мне по крону надо ходить на удаленный хост и выполнять там некоторые действия. Ограниченным пользователем, если хотите.

Absurd ★★★
() автор топика
Ответ на: комментарий от Absurd

> мне по крону надо ходить на удаленный хост и выполнять там некоторые действия.

Ну и зачем для этого plaintext-пароль?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>> мне по крону надо ходить на удаленный хост и выполнять там некоторые действия.

>Ну и зачем для этого plaintext-пароль?

Чтобы залогиниться на хост по ssh. Фрагмент конфигурации sshd я привел - там только по паролю.

Absurd ★★★
() автор топика
Ответ на: комментарий от Absurd

>>> мне по крону надо ходить на удаленный хост и выполнять там некоторые действия.

>> Ну и зачем для этого plaintext-пароль?

> Чтобы залогиниться на хост по ssh.

Логиниться на хост можно и без этого. Я не помню деталей, но это включает какую-то магию с hostbased authentication и ~/.shosts.

tailgunner ★★★★★
()
Ответ на: комментарий от vnovouhov

> > В родном юниксовом ssh ключика -pw почему-то нет. Этот недостаток надо устранить.

> В unix-овом это было-бы дыркой в безопасности, посему и нету.

Возьму на себя смелость объяснить почему. Вообще-то, параметры командной строки видны всем пользователям (за исключением всяких ядер с rsbac'ом и grsec'ом). Поэтому передача пароля таким образом не разрешена.

Я думаю, достаточно обойтись ключами, ведь есть возможность указать путь к файлу с ключем. Единственное, что при этом требуется, чтобы файл имел права 600 для пользователя, от которого запускается cron. За подробностями можно обратиться к man ssh

annoynimous ★★★★★
()
Ответ на: комментарий от Absurd

Насколько я понял, по крону будет выполняться скрипт с заходом по ssh на удаленную машину.
Если так, то можно воспользоваться утилитой expect для передачи пароля.

tzukko
()

>грамотеям просьба не возбуждаться.

а я уже возбудился :( как же мне быть?

dimon555 ★★★★★
()
Ответ на: комментарий от Absurd

>#AuthorizedKeysFile .ssh/authorized_keys

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

dimon555 ★★★★★
()

Ну раз ключ залил, так и логинся по ключу )

Deleted
()
Ответ на: комментарий от Absurd

> Никаких вариантов кроме указания пароля в параметрах ssh я не вижу.
>
> #RSAAuthentication yes
> #PubkeyAuthentication yes
> 

Закомментированные параметры != запрещенные
Это дефолтные значения

sdio ★★★★★
()
Ответ на: комментарий от sdio

>Это дефолтные значения

Тем не менее ssh -l user host просит пароль. Пермишен на ~/.ssh/id_rsa 600, ~/.ssh/id_rsa.pub тоже 600, на удаленной машине ключ лежит в ~/.ssh/authorized_keys (я проверил, это он), пермишен там тоже 600.

Absurd ★★★
() автор топика
Ответ на: комментарий от Absurd

Посмотри еще ls -ld .ssh на предмет пермишенов, там 700 должно быть еще надо смотреть сислог - на что ругается ssh при логине.

BreadFan ★★
()
Ответ на: комментарий от BreadFan

> надо смотреть сислог на сервере - на что ругается sshd при логине

selffix

BreadFan ★★
()
Ответ на: комментарий от BreadFan

Паньше он ругался в /var/log/secure такими словами и просил пароль: Authentication refused: bad ownership or modes for file /home/user/.ssh/authorized_keys

Теперь он не ругается и просит пароль

Absurd ★★★
() автор топика
Ответ на: комментарий от Absurd

запусти ssh с опциями -v -v -v. И прочитай уже о host-based authentication.

tailgunner ★★★★★
()
Ответ на: комментарий от Absurd

> Удалил ~/.ssh/authorized_keys и переделал его. Теперь он просит passphrase к ключу. Прогресс.

А теперь сгенери ключ с пустой passphrase и закрывай тему.

gaa ★★
()
Ответ на: комментарий от gaa

>> Удалил ~/.ssh/authorized_keys и переделал его. Теперь он просит passphrase к ключу. Прогресс.

>А теперь сгенери ключ с пустой passphrase и закрывай тему.

О! Теперь видимо дело за малым - налабать инсталляционный скрипт который по всем посещаемым хостам этот паблик-ключ бы разослал, иначе эта вялотекущая шизофрения перетечет с ЛОР-а в наш багтрекер.

Absurd ★★★
() автор топика
Ответ на: комментарий от annoynimous

> Вообще-то, параметры командной строки видны всем пользователям (за исключением всяких ядер с rsbac'ом и grsec'ом). Поэтому передача пароля таким образом не разрешена.

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

Ведь не всегда ssh-клиент запускается на многопользовательском компе и не всегда для доступа к сверхсекретным серверам с гостайнами в каждом файле.

const86 ★★★★★
()
Ответ на: комментарий от gaa

>А теперь сгенери ключ с пустой passphrase и закрывай тему.

был какой-то другой способ, чтобы passphrase держать в памяти

dimon555 ★★★★★
()
Ответ на: комментарий от Absurd

>налабать инсталляционный скрипт который по всем посещаемым хостам этот паблик-ключ бы разослал,

ftp?

dimon555 ★★★★★
()
Ответ на: комментарий от gorilych

> причём некоторые проги умудряются этот пароль скрывать, например rdesktop

Ага, даже так. Хотя у меня есть сомнения, что перезаписывание argv гарантирует, что ps не покажет старые значения... Ну и всё равно, пока прога не перезапишет, какую-то долю секунды будет виден пароль :)

const86 ★★★★★
()
Ответ на: комментарий от dimon555

>> А теперь сгенери ключ с пустой passphrase и закрывай тему.
> был какой-то другой способ, чтобы passphrase держать в памяти


ssh-agent. Н при его запуске один раз пароль таки придётся ввести.

gaa ★★
()
Ответ на: комментарий от gorilych

> причём некоторые проги умудряются этот пароль скрывать, например rdesktop

При помощи не очень хорошего способа. Переданные аргументы ведь можно
изменять после запуска:

#include <unistd.h>

int main(int argc, char **argv)
{
	(void) argc;
	while (*(++argv)) {
		while (*(*argv))
			*((*argv)++) = '*';
	}
	sleep(10);
	return 0;
}

Но всё равно пароль можно узнать, если выловить момент, когда
программа уже запустилась, но не успела затереть аргументы.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.