이 블로그 검색

2019년 8월 16일 금요일

맥미니 2009 late ubuntu , nvidia 9400M driver 설치하기


ubuntu 18.04 에서 nvidia driver 잘못깔린 경우, 부팅이 안되는 상황에서 대처 방안 및 제대로된 driver 설치하기.

집에 오래된 mac mini 2009 late 모델이 있는데 이젠 더이상 os upgrade도 안되고 그러다보니 apple music 불가. firefox 도 제대로 사용이 안되서 별로 해볼수 있는게 없다. 그래서 ubuntu 전용 머신으로 변신 시켜보고자 시도해봤다. usb 로 시동 디스크를 만들어서 부팅까지 성공은 했는데, nvidia driver를 잘못 깔아서 인지 부팅이 안되는 상황이 발생했고, 이런것 처음이다보니 여기저기 기웃거리면서 삽질한것을 정리해본다. .

2019년 8월 13일 화요일

(TIP) ssh 비밀번호 없이 로그인이 안되는 경우

ssh 접속시 비밀번호를 안물어보게 하기 위해 authorized_keys 에 공개키를 추가하는 작업을 수행했는데 계속 비밀번호를 물어보는경우 다음을 확인해본다.

A -> B 서버로 접속하는 경우, B 서버의 .ssh 디렉토리 및 내부 파일의 권한을 확인하고, 수정한다.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub 
chmod 644 ~/.ssh/authorized_keys
chmod 644 ~/.ssh/known_hosts



대부분 이단계에서 해결이 되지만, 이글의 목적은 바로 다음이 중요하다. ^^

그래도 계속 비밀번호를 물어본다면 B 서버의 로그를 확인해본다.
/var/log/secure

만약 다음과 같은 메시지가 보인다면 ,

Aug 13 19:32:15 sofcs sshd[7719]: Authentication refused: bad ownership or modes for directory /SOME/DIR

해당 디렉토리 권한을 변경해 준다.

chmod 755 /SOME/DIR

chmod 755 ~ ==> 사용자 home 디렉토리 권한 문제인 경우 수정.

libcurl + ssh 비번없이 사용하는 경우 (curl + ssh no password)


ssh 접속시 비밀번호를 안물어보게 하기 위해 authorized_keys 에 공개키를 추가하는 작업을 수행하게 된다. 작업 후에 그냥 ssh, sftp 로 명령을 수행하면 비밀번호 입력 없이 바로 접속이 되는데 curl 혹은 libcurl(c++) 을 이용하여 접속할때 인증이 실패하는 경우,
다음처럼 시도해본다.

$ curl --list-only "sftp://172.25.180.88//some/remote/path/" -u "userid:"
 .....
curl: (67) Authentication failure

인증이 실패한다. verbose 옵션을 주고 재시도 해본다.


$ curl -vvv --list-only "sftp://172.25.180.88//some/remote/path/" -u "userid:"

    * About to connect() to 172.25.180.88 port 22 (#0)
    *   Trying 172.25.180.88...
    ...중략...
    * SSH authentication methods available: publickey,gssapi-keyex,gssapi-with-mic,password
    * Using ssh public key file /UPMS/.ssh/id_dsa.pub
    * Using ssh private key file /UPMS/.ssh/id_dsa

    * SSH public key authentication failed: Unable to open public key file
    * Failure connecting to agent
    * Authentication failure
    * Closing connection 0
    curl: (67) Authentication failure

공개키, 비밀키의 이름이 다르다. 알고보니 현재 curl 이 기본값으로 dsa 방식을 가정하고 있었다 (최신 curl 버전은 rsa 를 먼저 찾게 되어 있음. 이글의 curl 버전은 7.3 입니다).

그런데 현재 local 장비의 .ssh 폴더에는 rsa 방식의 키가 존재하기 때문에 인증 오류가 발생한다.그래서 알아낸 방식은 키 이름을 명시적으로 지정하는 것이다.