altera o diretório padrão do scp em '~ / .ssh / config'

3

O comando scp (openssh) aceita caminhos relativos como host:path/ , que são relativos ao diretório inicial no host. Eu gostaria de mudar a localização do diretório padrão.

Por exemplo, gostaria de criar um pseudo-host de atalho em .ssh/config ao longo das linhas de

Host bar
   hostName foo
   ## this directive does not actually exist:
   DefaultDirectory /home/me/some/path/here  

para que eu pudesse escrever

scp some_file bar:baz

em vez de

scp some_file foo:some/path/here/baz

É possível com o openssh?

    
por eudoxos 09.01.2012 / 15:23

3 respostas

1

O diretório "home" é definido pelo diretório inicial dos usuários definido no arquivo /etc/passwd . Eu não acredito que qualquer parâmetro opensshd irá sobrescrever este comportamento. Você pode alterar o diretório home do usuário ... mas não acho que é isso que você está procurando.

    
por 09.01.2012 / 15:39
1

A solução rápida para isso é criar um link simbólico em seu próprio diretório pessoal no servidor remoto para o diretório que você deseja acessar:

ln -s /your/long/path/here/to/webapp1 ~/webapp1

Isso permitiria que você acessasse rapidamente a pasta assim:

scp file foo:webapp1/

e permite a expansão no futuro (mais de uma pasta remota) e não afetará outros programas. Descobri que isso é útil em meus servidores quando tenho vários sites em execução no mesmo servidor e preciso enviar arquivos para eles (eu uso principalmente o git para isso agora).

    
por 09.01.2012 / 15:54
1

Outra opção é, claro, um pequeno script / função ao longo das linhas de (supondo bash aqui):

myscp() {
  scp ${1%%:*}${SCP_DIR:?/tmp}/${1#*:}
}
    
por 09.01.2012 / 17:42

Tags