Привет, коллеги! На удаленном хосте sudo-права есть. Передаю SSH ключ -t чтоб аллоцировал терминал. Непонятно по какой причине нет tty! Возвращаяется ошибка: sudo: нет tty и не указана программа askpass.#!/bin/bash
lhost=$1
for host in `cat $lhost`
do
cat ~/.ssh/id_rsa.pub | ssh -t user@$host 'sudo mkdir -p .ssh;
sudo touch .ssh/authorized_keys;
sudo cat >> .ssh/authorized_keys;
sudo chmod 700 ~/.ssh;
sudo chmod 600 ~/.ssh/authorized_keys'done
Про ansible Вы не слышали, я так понимаю :)А по теме - Вас и в гугле забанили, похоже - http://stackoverflow.com/questions/21659637/how-to-fix-sudo-...
проблема известная, и ответов как решить over9000.
> Про ansible Вы не слышали, я так понимаю :)
> А по теме - Вас и в гугле забанили, похоже - http://stackoverflow.com/questions/21659637/how-to-fix-sudo-...
> проблема известная, и ответов как решить over9000.никто меня не банил)))
> Привет, коллеги! На удаленном хосте sudo-права есть. Передаю SSH ключ -t
> чтоб аллоцировал терминал. Непонятно по какой причине нет tty! Возвращаяется ошибка:
> sudo: нет tty и не указана программа askpass.Если присмотреться, то stdin ssh в такой конструкциии действительно не тервинал.
> cat ~/.ssh/id_rsa.pub | ssh -t user@$host 'sudo mkdir -p .ssh;
$ seq 5 |ssh -t server1-2-3 'sudo id'
Pseudo-terminal will not be allocated because stdin is not a terminal.
sudo: нет tty и не указана программа askpass
$ _А если ещё почитать man ssh, то можно узнать про "Multiple -t options force tty allocation, even if [,,,]".
Попробуй [U] ssh -tt [/U].
>[оверквотинг удален]
>> sudo: нет tty и не указана программа askpass.
> Если присмотреться, то stdin ssh в такой конструкциии действительно не тервинал.
>> cat ~/.ssh/id_rsa.pub | ssh -t user@$host 'sudo mkdir -p .ssh;
> $ seq 5 |ssh -t server1-2-3 'sudo id'
> Pseudo-terminal will not be allocated because stdin is not a terminal.
> sudo: нет tty и не указана программа askpass
> $ _
> А если ещё почитать man ssh, то можно узнать про "Multiple -t
> options force tty allocation, even if [,,,]".
> Попробуй [U] ssh -tt [/U].-tt висит после ввода пароля.
1.вместо этих строк
sudo chmod 700 ~/.ssh;
sudo chmod 600 ~/.ssh/authorized_keys'
можно сказать umask 077 перед mkdir2. а ssh-copy-id отсутствует ?
3. можно обойтись и без цикла смотри mussh
> 1.вместо этих строк
> sudo chmod 700 ~/.ssh;
> sudo chmod 600 ~/.ssh/authorized_keys'
> можно сказать umask 077 перед mkdir
> 2. а ssh-copy-id отсутствует ?
> 3. можно обойтись и без цикла смотри musshА я бы просто ручками все проверил через ssh , и все стало бы ясно ...
>> 1.вместо этих строк
>> sudo chmod 700 ~/.ssh;
>> sudo chmod 600 ~/.ssh/authorized_keys'
>> можно сказать umask 077 перед mkdir
>> 2. а ssh-copy-id отсутствует ?
>> 3. можно обойтись и без цикла смотри mussh
> А я бы просто ручками все проверил через ssh , и все
> стало бы ясно ...А потом скриптик накидал )