제2장 SSH 공개 키 설정

3303 단어

 


이 장은 Capistrano를 사용하는 전제 조건 중 하나인 SSH 키를 소개합니다.
이미 프로덕션 서버가 구성되어 있기 때문에 이제 SSH를 통해 프로덕션 서버에 로그인할 수 있을 것입니다.하지만 운영 서버에 SSH 공개 키가 설정되어 있습니까?만약 아직 없다면 지금부터 조작을 시작하세요.
또한 Windows 환경에서의 Capistrano 설치 방법은 다음 장(제3장 Windows 환경에서의 Capistrano)에서 설명합니다.
먼저 SSH 공개 키를 만듭니다.
% ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kuroda/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/kuroda/.ssh/id_rsa.
Your public key has been saved in /home/kuroda/.ssh/id_rsa.pub.
The key fingerprint is:
a3:ed:8b:aa:6d:6c:92:16:70:6b:1d:51:3a:24:6f:b9 kuroda@desktop

이어서 이 키를 생산 서버에 복사합니다.운영 서버의 도메인 이름은 다음과 같습니다.
alpha.oiax.jp .
% scp .ssh/id_rsa.pub alpha.oiax.jp:~
[email protected]'s password:

운영 서버에 로그인합니다.나중에 로컬 호스트에서 작업할 때 프롬프트는 다음과 같습니다.
% 원격 컴퓨터의 알림 문자는
$를 나타냅니다.
% ssh alpha.oiax.jp
Password:

먼저 만들기
앱 사용자.
% sudo /usr/sbin/useradd -m app

Rails 애플리케이션을 배포하고 실행하는 고유 사용자입니다.이 사용자 이름이 이미 사용된 경우 다음과 같이 선택할 수 있습니다.
rails 등 다른 이름.또한 개발자 개인의 계정(예를 들어
kuroda)를 배치하지만 여러 명이 개발하는 상황에서 파일 권한에 연루되기 쉬우므로 전용 사용자를 설립하는 것을 권장합니다.
우선 ~/.ssh에서 공개 키를 설정합니다.
$ mkdir -m 700 .ssh
$ cat id_rsa.pub >> .ssh/authorized_keys

다음은/home/app/.ssh에서 공개 키를 설정합니다.
$ sudo -u app mkdir -m 700 /home/app/.ssh
$ sudo -u app touch /home/app/.ssh/authorized_keys
$ sudo sh -c "cat id_rsa.pub >> /home/app/.ssh/authorized_keys"

물러나다.
$ exit

반복 입력 경로 단어를 줄이고 싶은 번거로운 사람은
ssh-agent 키 설정.
% ssh-agent bash
% ssh-add
Enter passphrase for /home/kuroda/.ssh/id_rsa: 
Identity added: /home/kuroda/.ssh/id_rsa (/home/kuroda/.ssh/id_rsa)

공개 키를 사용하여 생산 서버에 로그인합니다.
% ssh alpha.oiax.jp
$ exit

로그인할 때 비밀번호를 요청하지 않으면 OK입니다.
다음
앱 사용자가 로그인합니다.
% ssh [email protected]
$ exit

여기는 비밀번호를 입력하지 않아도 로그인할 수 있을 거예요.
그럼 우리 Capistrano를 시험해 봅시다.
로컬 호스트의 적절한 디렉터리에서 다음 내용을 포함하는 텍스트 파일을 만듭니다
Capfile .확장자를 추가하지 않습니다.또한,'kuroda'로 원격 호스트에 SSH로 로그인한 사용자 이름을 지정하고, 원격 호스트의 실제 이름을'alpha'로 바꾸십시오.oiax.jp'.
set :user, 'kuroda'
task :stamp, :hosts => "alpha.oiax.jp" do
  run "touch /home/kuroda/touched"
end

이로써 로그인
alpha.oiax.jp 및 실행 정의touch /home/kuroda/touched 명령의 임무
stamp .Unix 명령의touch 파일을 업데이트하기 위한 타임 스탬프입니다. 파일이 없으면 하나 만드십시오.
집행을 위해
stamp 작업, 저장 시작
Capfile 디렉토리, 입력cap stamp .
% cap stamp
  * executing `stamp'
  * executing "touch /home/kuroda/touched"
    servers: ["alpha.oiax.jp"]
    [alpha.oiax.jp] executing command
    command finished

운영 서버에서 결과를 확인합니다.
$ pwd
/home/kuroda
$ la -l touched
-rw-r--r--  1 kuroda kuroda 5 Mar 24 22:58 touched

실행 중
stamp 작업 이전에 존재하지 않았던
touched 파일이 생겼습니다.
다음으로 전송:https://blog.51cto.com/yaoge/327032

좋은 웹페이지 즐겨찾기