2012-05-09 3 views
8

Mysql-dbs와 나쁜 habbit을 가진 관리자가 암호를 잊어 버리거나 (암호만으로는 더 창조적 인 인증을 원하는만큼 편집증이 있다고 가정). 예를 들어 Ssh-agent가 개인 키를 저장하는 방식으로 Mysql -root 쉘에 액세스 할 수 있습니까? 그렇다면 "mysql -u root" (비밀번호 또는 개인 키와 비밀번호의 조합을 입력하지 않고)으로 로그인 할 수 있습니까?SSH 개인 키를 사용하는 MySQL 루트 로그인?

답변

7

확실히 일반 SSH 키 인증을 사용하여 쉘 계정에 로그온 한 다음 ~/.my.cnf 파일을 암호와 함께 사용할 수 있습니다. 이는 기본적으로 mysql 명령 줄 클라이언트에서 사용됩니다.

그 내용은 다음과 같아야합니다

[client] 
user=the_user_name 
password=the_password 

가 읽을 수있는 누구든지이 파일이 해당 자격 증명을 사용할 수있을 것이라고 조심하십시오. 소유자 만이 읽을 수 있도록 보호하십시오 (키보드에서 멀리 떨어지면 터미널을 잠그십시오).


직접 키 기반 인증을 원하면 SSL client-certificate authentication을 사용할 수도 있습니다. 자신 만의 작은 CA를 만들고 이러한 클라이언트 인증서를 발급 할 수 있습니다. 직접 원격 액세스가 필요한 경우 여러 가지 도구가이를 지원합니다.

+1

+1. 나는이 대답을 직접 작성하는 중반이었다. –

+0

.. 정확하게, 감사합니다! 그 (것)들 외에, 나는 gpg를 가진 ssh-fs 것을 설치하기와 같은 몇몇 아이디어가 있고, 신중하게 파일을 보호하는 생각해야한다 (나는 공유 시스템에있다) - 아마 암호를 분실하는 경우에 진짜로 중요하지 않은 인증의 많은 방법을 사용하여 , 아이디어? 아마도 지금 조사를 강화할 것입니다. – hhh

+1

ssh-fs에서 반드시 작동하지는 않습니다. 이 파일은 실제 컴퓨터에서 (그리고 암호화되지 않은 형식으로 만) 실행중인 경우 mysql 클라이언트에 의해 사용됩니다. (물론 ssh-fs로 원격 홈 디렉토리를 마운트 한 다음 로컬 'mysql'클라이언트로이 설정 파일을 지정할 수 있지만 이것은 복잡한 것처럼 보입니다). 필요할 경우 루트 계정에이 파일에 mysql 루트 암호를 보관하십시오. 원격 액세스의 경우 client-certs가 더 나은 옵션 일 수 있습니다 (관리면에서 더 많이 필요함). – Bruno

관련 문제