URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8407
[ Назад ]

Исходное сообщение
"Ввод пароля ssh"

Отправлено adminnu , 25-Авг-09 16:14 
при подключении к ssh:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#!/bin/sh
ssh gvj.lyly.ru -l user
echo "pass"
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo не пердается, так как ssh запросил пароль и тем самым команда еще не выполнена
-----------------------------------------------------------------------------------------------------------
#sh flow.sh
user@gvj.lyly.ru's password:
-----------------------------------------------------------------------------------------------------------
пробовал так еще:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#!/bin/sh
ssh gvj.lyly.ru -l user | echo "pass"
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
если так, то:
#sh flow.sh
pass
user@gvj.lyly.ru's password:

Ключи не поддерживает сервер. Прошу помочь.


Содержание

Сообщения в этом обсуждении
"Ввод пароля ssh"
Отправлено аноним , 25-Авг-09 19:40 
ssh то, что вы хотите, не поддерживает, потому что это небезопасно и в целом неправильно. Используйте expect или empty.

"Ввод пароля ssh"
Отправлено adminnu , 25-Авг-09 21:36 
>ssh то, что вы хотите, не поддерживает, потому что это небезопасно и
>в целом неправильно. Используйте expect или empty.

Мне безопасность неважна. Все будет в закрытой сетке.
C expect я сейчас мучаюсь не особо выходит.
Мне кажется все-же можно моим принципом сделать.
Я пока с expect помучаюсь, и напишу вопросы по нему.


"Ввод пароля ssh"
Отправлено shadow_alone , 26-Авг-09 07:25 
можешь с expect и не мучатся, он может выполнить последовательность каких либо действий, а вот интерактивно вам не даст работать.
Так что используйте , как вам и сказали, авторизацию по ключу.

"Ввод пароля ssh"
Отправлено ACCA , 25-Авг-09 22:54 
Для клонов Debian:

один раз для твоего хоста, passphrase пустая:
      $ ssh-keygen

один раз для каждого gvj.lyly.ru:
      $ ssh-copy-id user@gvj.lyly.ru

после этого без пароля
      $ ssh user@gvj.lyly.ru


если нет ssh-copy-id, то вместо него:
      $ ssh user@gvj.lyly.ru \
      "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" \
      < ~/.ssh/id_rsa.pub


"Ввод пароля ssh"
Отправлено adminnu , 26-Авг-09 11:28 
>[оверквотинг удален]
>      $ ssh-copy-id user@gvj.lyly.ru
>
>после этого без пароля
>      $ ssh user@gvj.lyly.ru
>
>
>если нет ssh-copy-id, то вместо него:
>      $ ssh user@gvj.lyly.ru \
>      "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" \
>      < ~/.ssh/id_rsa.pub

У меня фряха. Да, в общем я все перепробывал, expect помимо этого очень долго логинится, а там надо как можно быстрее.
Я по ключу пробовал, делал по правилам, чтобы пароль не запрашивал, но но не выходило, сейчас коллега сказал что логинился к этой машине, буду мучать в общем по ключу.
Спасибо.


"Ввод пароля ssh"
Отправлено adminnu , 26-Авг-09 15:03 
>[оверквотинг удален]
>>      $ ssh user@gvj.lyly.ru \
>>      "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" \
>>      < ~/.ssh/id_rsa.pub
>
>У меня фряха. Да, в общем я все перепробывал, expect помимо этого
>очень долго логинится, а там надо как можно быстрее.
>Я по ключу пробовал, делал по правилам, чтобы пароль не запрашивал, но
>но не выходило, сейчас коллега сказал что логинился к этой машине,
>буду мучать в общем по ключу.
>Спасибо.

Сделал по ключу. Всем спасибо.


"Ввод пароля ssh"
Отправлено adminnu , 26-Авг-09 17:57 
>[оверквотинг удален]
>>>      < ~/.ssh/id_rsa.pub
>>
>>У меня фряха. Да, в общем я все перепробывал, expect помимо этого
>>очень долго логинится, а там надо как можно быстрее.
>>Я по ключу пробовал, делал по правилам, чтобы пароль не запрашивал, но
>>но не выходило, сейчас коллега сказал что логинился к этой машине,
>>буду мучать в общем по ключу.
>>Спасибо.
>
>Сделал по ключу. Всем спасибо.

Рано радовался, все-равно пароль запрашивает:

Вот, что выдает:
OpenSSH_5.1p1 FreeBSD-20080901, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to gvj.corbina.net [195.14.52.31] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /home/lyly/public_html/ssh/gvj.pub type 1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.7p1-hpn13v1
debug1: match: OpenSSH_4.7p1-hpn13v1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.1p1 FreeBSD-20080901
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'gvj.corbina.net' is known and matches the DSA host key.
debug1: Found key in /root/.ssh/known_hosts:1
debug1: ssh_dss_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/lyly/public_html/ssh/gvj.pub
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password

Что не так та. При создании pub-файла пароль не ввожу.


"Ввод пароля ssh"
Отправлено adminnu , 26-Авг-09 21:44 
В общем подключится. Были неверные права на папке у сервера.

Возник вопрос опять же.
Я эту всю авторизацию запуска со скрипта.
ssh -i /home/lyly/public_html/ssh/gvj lyzhenkov_a@gvj.lyly.net
Но после захода, я не моу отправить не одной команды так как выполняется все-еще первая.
к примеру

#!/bin/sh
ssh -i /home/lyly/public_html/ssh/gvj lyzhenkov_a@gvj.lyly.net
echo "aaaaa"

Как вмещаться, или может надо остановить предыдущую команду и отправить новую?


"Ввод пароля ssh"
Отправлено Андрей , 27-Авг-09 00:18 
>#!/bin/sh
>ssh -i /home/lyly/public_html/ssh/gvj lyzhenkov_a@gvj.lyly.net

вот тут все ушли на gvj.lyly.net
>echo "aaaaa"

так что вот это выполниться только когда все вернуться

>Как вмещаться, или может надо остановить предыдущую команду и отправить новую?

если надо выполнить команду на сервере то
$ ssh user@server command

command - должна находиться на сервере


"Ввод пароля ssh"
Отправлено аноним , 28-Авг-09 21:26 
>Как вмещаться, или может надо остановить предыдущую команду и отправить новую?

Вы не понимаете, как работает shell и ssh.
`Вмешаться' нельзя в принципе. ssh сессии бывают интерактивными и неинтерактивными. В первые вы ручками вводите комманды, или можете заставить это делать за вас except/empty. Вторые выполняют предопределенный набор комманд и вашего вмешательства не требуют.

Вот примеры неинтерактивных сессий:

выполнить комманду на удаленной машине:
ssh host "echo aaa"

выполнить несколько комманд на удаленной машине:
ssh host "echo aaa; echo bbb"

выполнить скрипт на удаленной машине
cat script.sh | ssh host "sh"
ssh host "sh" < script.sh

т.е. на удаленной машине будет запущен интерпретатор sh, а текст скрипта ему будет передан на stdin из локального файла

или так:

ssh host "sh" << _END
echo aaa
echo bbb
echo ccc
_END

это позволяет не создавать отдельный файл для удаленного скрипта.

То что вы пробовали:

#!/bin/sh
ssh gvj.lyly.ru -l user
echo "pass"

- залогиниться на удаленную машину интерактивно, после завершения сеанса написать pass

#!/bin/sh
ssh gvj.lyly.ru -l user | echo "pass"

- залогиниться на удаленную машину интерактивно, вывод ssh отдать в echo. Это по сути своей вообще бред.

По идее, вам должно было прийти в голову

echo "pass" | ssh gvj.lyly.ru -l user

что передаст пароль на стандартный ввод ssh, но нет, это не будет работать и не должно.


"Ввод пароля ssh"
Отправлено adminnu , 29-Авг-09 12:46 
>[оверквотинг удален]
>
>- залогиниться на удаленную машину интерактивно, вывод ssh отдать в echo. Это
>по сути своей вообще бред.
>
>По идее, вам должно было прийти в голову
>
>echo "pass" | ssh gvj.lyly.ru -l user
>
>что передаст пароль на стандартный ввод ssh, но нет, это не будет
>работать и не должно.

echo "pass" | ssh gvj.lyly.ru -l user - так тоже пробовал. Он выкидывал пароль, раньше чем запрашивает. В остальном буду сейчас пробовать, спасибо. Шелл действительно не особо знаю, разбирюсь первые дни сейчас. Знаю php, но вот потребовался шелл в комплекте.


"Ввод пароля ssh"
Отправлено adminnu , 31-Авг-09 13:45 
Все сделал и зашел через 2 сервера.
#!/bin/sh
ssh -i /home/corbina/public_html/ssh/gvj user@gvj.lyly.net "ssh user@flow.lyly.net \"cd ipacc; cvs up; findip $1\""

все выдает нормально. Но теперь требуется значение findip $1 записать в переменную или файл.

#!/bin/sh
ssh -i /home/corbina/public_html/ssh/gvj user@gvj.lyly.net "ssh user@flow.lyly.net \"cd ipacc; cvs up; findip $1 > 1.txt\""
то он записывает в файл на flow.lyly.net, можно конечно с помощью scp перекинуть его, но это геморно, а как его записать в локальный файл.
или записать в переменную, по типу:
#!/bin/sh
ssh -i /home/corbina/public_html/ssh/gvj user@gvj.lyly.net "ssh user@flow.lyly.net \"cd ipacc; cvs up; fi=`findip $1`\""
echo $fi

при этом ничего не выдает.


"Ввод пароля ssh"
Отправлено аноним , 31-Авг-09 23:01 
ssh -i /home/corbina/public_html/ssh/gvj user@gvj.lyly.net "ssh user@flow.lyly.net \"cd ipacc; cvs up; findip $1\"" > 1.txt
cat 1.txt

или

ip=`ssh -i /home/corbina/public_html/ssh/gvj user@gvj.lyly.net "ssh user@flow.lyly.net \"cd ipacc; cvs up; findip $1\""`
echo $ip