Introdução
A aplicação PuTTY será intensivamente usada nestas aulas de forma a implementar os processos de comunicação com as placas, mais concretamente quando é necessário:
- aceder à linha de comando da shell das placas Raspberry Pi por ligação de rede segura (SSH)
- enviar/receber os comandos/mensagens ao programa desenvolvido para as placas Raspberry Pi usando para tal uma ligação de rede tcp/ip (Telnet)
- enviar/receber os comandos/mensagens ao programa desenvolvido para as placas Arduino usando para tal uma ligação série (Serial)
IMPORTANTE: No caso dos dois primeiros processos de comunicação (SSH e Telnet) é necessário que o computador esteja “dentro” da rede local criada pelo router. Para isso é necessário aceder à rede WiFi (SSID: EDM2k16) ou ligar a partir da rede eduroam (ou FEUPnet) a VPN (protocolo pptp) cujo dados de acesso são os seguintes:
- IP: 192.168.102:235 (o router)
- Username: edm2k16
- Palavra-passe: a anunciar na aula
Na pasta EDM já existe um atalho para realizar a ligação da VPN.
Instalação
A instalação da aplicação PuTTY faz-se simplesmente pela descarga do ficheiro executável putty.exe que se pode obter nesta página. Este ficheiro está já disponível nos PCs das bancadas na pasta C:/Alunos/EDM/install
Acesso ssh
Para implementar uma ligação ssh com a placa Raspberry Pi teremos que na categoria Session:
- Definir a “Connection type” como: SSH
- Escolher o “IP address”: 10.0.0.1XX (onde o XX representa o número da bancada)
Para que não seja necessário voltar a definir estes dados numa próxima utilização, é possível dar-lhe um nome no campo “Saved Sessions” (por exemplo SSH) e carregar no botão “Save”. Na próxima basta escolher essa sessão e carregar em “Load” seguido de “Open” (ou simplesmente fazer um duplo-clique na sessão pretendida).
Desde já é possível aceder à linha de comando da shell, onde se começa por pedir o nome do utilizador com que pretendemos realizar o “login” (pi), seguido da palavra-passe (a fornecer nas aulas).
Chaves
De forma a evitar a introdução do nome de utilizador e palavra-passe na sessão SSH anteriormente criada, tornando assim o acesso mais rápido, é possível carregar essa sessão (Load) e definir na categoria:
- “Connection > Data > Auto-login username” o valor pi
- “Connection > SSH > Auth > Private key file for authentication” o nome dum ficheiro ppk.
Este ficheiro possui uma chave privada gerada por uma ferramenta auxiliar puttygen.exe a obter nesta mesma página. Uma vez executada esta ferramenta (que já se encontra na pasta C:/Alunos/EDM/install) será necessário:
- Carregar no botão Generate e mover o rato até a chave pública ser gerada.
- Depois fazer o Save private key (sem passphrase) escolhendo um nome para o ficheiro com a chave privada anteriormente referido, por exemplo: privkey.ppk a guardar na pasta C:/Alunos/EDM
- Sem fechar o PuTTYgen, aceder ao Raspberry Pi por SSH e criar o ficheiro authorized_keys na pasta .ssh executando os comandos:
mkdir .ssh
nano .ssh/authorized_keys - Adicionar a linha com a chave pública fazendo copy da aplicação PuttyGen (tendo o cuidado de copiar TODA a chave) e paste no editor nano (carregando simplesmente com o botão direito do rato.
- Sair do editor nano fazendo Ctrl+x seguido de y+enter (para guardar o ficheiro)
Fonte
Caso se pretenda aumentar um pouco o tamanho da fonte usada é possível fazê-lo na categoria “Window > Appearance > Font settings > Change…”, escolhendo por exemplo o tamanho 14.
Não esquecer de no final, voltar a gravar a sessão SSH com estes novos dados!
Atalho
Por fim, no sentido de facilitar ainda mais o acesso é possível criar um atalho para a aplicação PuTTY adicionando ao conteúdo do campo “destino” a referência à sessão pretendida, neste caso: -load SSH
Acesso Telnet
Para implementar uma ligação Telnet com a placa Raspberry Pi teremos que na categoria Session:
- Definir a “Connection type” como: Telnet
- Escolher o “IP address”: 10.0.0.1XX (onde o XX representa o número da bancada)
- Mudar a “Port” para: 12345
Desta vez sugere-se o guardar (Save) da sessão com o nome Telnet.
Acesso Serial
Para implementar uma ligação Serial com a placa Arduino teremos que na categoria Session definir a “Connection type” como: Serial
E na categoria “Connection > Serial” escolher:
- “Serial line to connect to”: COMx (a porta onde a placa se encontra ligada)
- “Speed (baud)”: 115200
- “Data bits”: 8
- “Stop bits”: 1
- “Parity”: None
- “Flow control”: None
Desta vez sugere-se o guardar (Save) da sessão com o nome Serial.