SSH 만드는 모든 입력한 암호를 표시할 때 명령을 제공한 인수로 명령 SSH

실행하는 경우 이:

ssh user@server 'mysql -u user -p'

시 MySQL 비밀번호가 입력한 암호에서 볼 수 있는 화면입니다. 어떻게 그것을 막을 수 있습니다? 면 로그인을 통해ssh한 후 실행하여 MySQL 명령,모든 것이 잘 작동합니다.

질문에 대한 의견 (8)
해결책

제공하는 경우에는 원격 명령을 실행하는 경우,지 않't 할당 tty,그래서 원격 명령할 수 없는 비활성화됩니다. 할 수 있습 SSH 을 제공하 tty 를 사용하여-t옵션:

ssh -t user@server 'mysql -u user -p'

해당 옵션(o또는 config 파일)은RequestTTY. 나는'd 주의에 대하여 그것을 사용하여 설정하기 때문에그것을 원치 않는 결과가 발생할 수 있습니다 비상 대 명령.

해설 (3)

암호를 저장하는 방법에서 보호되는 옵션은 파일

신뢰할 수 있는지[]원격 컴퓨터's 보안 암호를 저장할 수 있습니다에 제대로 보호되는 옵션은 파일의 제안으로서[최종 사용자 사용지침에 대한 암호 보안*]1장의 수동 할 필요없이,를 통해 통신ssh또는 유형입니다.

특별히 추가할 수 있습니다 라인[클라이언트]섹션은 파일의.my.cnf에서 당신의 홈디렉토리:

[client]
password=your_pass

물론 당신은 유지하는 파일에서 액세스할 수 있지만 사람이 자신에 의해 설정하는 파일 액세스 모드를 400 600 으로,예를 들어,

chmod 600 ~/.my.cnf

다음 같은 것을 사용할 수 있습니다

ssh user@server 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'

user110971은 사용자 이름은 사용자 계정 정보를 보여줍니다.


강제 ssh 할당을 의사 tty(ssh-t)

이 문제가 발생은 각 시간을 보내는 명령을 통해ssh당신은 필요를 삽입하는 입력하기 때문에 기본적으로ssh이지 않는 할당을 의사 tty.

할 수 있습 tty 할당 옵션-t,(심지어는 하나 이상의 필요한 경우):

-t

힘사-tty 할당. 이를 실행하는 데 사용할 수 있는 임의의 화면을 기반 프로그램을 원격 컴퓨터에서는 매우 유용할 수 있습니다,예를 들어,구현할 때 메뉴 서비스입니다. 여러-t옵션을 힘 tty 할당하는 경우에도,ssh 은 로컬 tty.

으로 읽을 수 있습에서이것은 데비안 후(Jul_11_2008)sudo,그것은 오래된 문제는 사랑한 재발:

ssh user@server"sudo ls" 비밀번호:비밀번호

과 암호를 표시할

솔루션을 강제하는 것입니다 ssh 할당을 의사 tty,t 플래그:

ssh-t@사용자 서버 sudo ls


주의:

*[]*할 수 있는 경우에 의존을 떠나 비밀번호에 파일을 자신만 액세스할 수 있고 루트에노동*클라이언트입니다. 가능하면 원격 컴퓨터를 재부팅 OS 변경 또는 제거하 HDD,컴퓨터는't 으로 간주 될 완전히 안전하다...그러나 이 경우에는 데이터베이스는 그 자체가 안전하게 보호되지 않습니다.

해설 (1)

마운트 옵션이"hidepid"proc fs 도 중요합니다. 그것은 당신의 commandlines 에서 눈에 보이지 않는 프로세스에 대한 목록을 사용합니다. 파일시 예제:

proc /proc proc hidepid=1 0 0
해설 (0)