Transferência de Arquivos SSH SCP Mensagem de Erro: 'Stdin: não é um tty'

6

Estou usando um terminal SSH do Macbook e gero pares de chaves RSA e carrego id_rsa.pub remoto com permissões aprovadas. Eu posso conectar com o servidor web Apache remoto. Eu posso criar, abrir, mover, modificar e na inspeção preliminar pode gerenciar arquivos no servidor web, sem problemas ... e não gerar mensagens de erro.

Surpreendentemente, não consigo scp uma pasta nem documento da minha área de trabalho para o servidor remoto. Também não posso scp uma pasta ou documento do servidor remoto para minha área de trabalho. Toda vez que recebo a mensagem de erro:

stdin: is not a tty

O comando scp de ou para o servidor da web remoto não funciona com referências absolutas ou relativas de localização de arquivos.

Minha sintaxe padrão é assim:

Do host local:

scp -rp ~/Desktop/foldername [email protected]:~/public_html

Do host remoto:

scp -rp [email protected]:~/public_html/foldername ~/Desktop/

Parece ser um problema com a mensagem de erro stdin: is not a tty .

O que está acontecendo?

Se esse erro estiver impedindo as transferências de arquivos, como resolvo o stdin: is not a tty ?

    
por user2217265 29.03.2013 / 06:48

3 respostas

6

A razão para isso é que um dos scripts de login no servidor de destino está usando stty... para configurar as características do terminal. O comando falha quando não tem um tty, ou seja, quando você se conecta com scp .

A solução é proteger o stty para que seja executado somente quando uma sessão interativa estiver presente. Existem várias maneiras de fazer isso; Aqui estão alguns exemplos de shells do tipo bash / sh:

Feio:

stty ... >/dev/null 2>&1

Funciona para mim:

test -n "$PS1" && stty ...

Recomendado em outros lugares no SE :

# Check for a bash login shell
case $- in
  *i*) stty ... ;;
esac
    
por 27.05.2015 / 11:34
2

Não tenho certeza se isso é importante na implementação do OSX sshd, mas em alguns sistemas, quando você não tem um tty, o diretório inicial implícito com ~ / convention, pode não se expandir e você pode obter alguns resultados inesperados. Eu sei que não é uma coisa certa, mas por favor tente com nomes de caminho completos, ao invés de ~ / construct.

    
por 29.03.2013 / 07:08
0

Isso acontece comigo quando meu .bash_profile tenta carregar. Eu adicionei

[-z "$ {PS1}"] & & retorno;

No topo e corrigido

    
por 27.04.2015 / 05:13

Tags